数学联邦政治世界观
超小超大

数学(九) (5-3)

{

for (int k = 0; k <= x; k++)

{

if (dp[j][k] <= y)

ans = std::max(ans, j + 1);

}

}

std::cout<<ans<<'\n';

return 0;

}

F - Range Connect MST

赛时没仔细想盲猜线段树优化建图然后就一直冲E 去了,打完一看直接升温

可以将图分成两个部分一边是1 ∼ N,另一边是 N+1 ∼ N+Q,操作完第二个部分所有节点一定会连到第一个部分,代价是 ∑Gᵢ,然后只要考虑第一个部分

每次操作会有[Lᵢ,Rᵢ] 中所有点和点 N+i 连接,总共 Rᵢ – Lᵢ+1 条边,相当于 [Lᵢ,Rᵢ] 中的点连成链,然后 N+i 连到这个区间(怎么连不重要),我们只需要暴力把 x 连接到 x+1(x<Rᵢ) 如果 [Lᵢ,Rᵢ] 内某个区间

已经相连,直接跳过这个区间,这个操作用并查集很容易实现,根据上面连接方式,每个点的祖先一定大于或者等于它,最后只要判断 1 的祖先是不是 N 判断是否连通

至于最小生成树问题,存下每次询问然后排序

struct DSU

{

int n;

std::vector<int> fa, size;

DSU(int n) : n(n), fa(n + 1), size(n + 1, 1) { std::iota(fa.begin(), fa.end(), 0); }

int find(int x)

{

if (x != fa[x])

{

fa[x] = find(fa[x]);

}

return fa[x];

}

void merge(int x, int y) // x -> y

{

x = find(x), y = find(y);

if (x == y)

return;

// if (size[x]>size[y])

// std::swap(x, y);

fa[x] = y, size[y] += size[x];

}

bool same(int x, int y)

{

return find(x) == find(y);

}

};

int main()

{

std::ios::sync_with_stdio(false);

std::cin.tie(0);

int n, q;

std::cin>>n>>q;

数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。

相关小说

万分之一于你 连载中
万分之一于你
Ther.D
1.失约/校园/1v1/be2.末世/未来/1v1/be3.巨龙的宝藏/1v1/he
7.9万字1个月前
星陨碎爱 连载中
星陨碎爱
温柔的晨曦
柔弱多情的外表下,一颗冰封的心脏,深夜无人的叹息里,又道尽多少怅惘,一汪秋水,埋葬那些说不出的感情——“你在透过我的眼睛,看着谁?”……星空......
10.6万字1个月前
永无归途之天地劫 连载中
永无归途之天地劫
光梦飞雪
亿万年前,圣神推翻腐朽的天庭,创立新天界,却从此各族分裂!大劫将至,人族一统,各族纷纷利用,阴谋算计,没有可以信赖的!宿命由天不由人,然而众......
32.6万字1个月前
妙先生之等你而归 连载中
妙先生之等你而归
衿妍
又是一次同样残忍的道理,但是至少不用在杀人,但是不到万不得已,只能选择杀。生与死,救与不救,只是一种选择。不是一种道理
4.7万字1个月前
元梦晴的小小世界 连载中
元梦晴的小小世界
是梦梦呀_Lucky
oc的小小世界
0.8万字1个月前
花语程行之乱世纷争 连载中
花语程行之乱世纷争
一颗茶籽
第五世,恰逢乱世
3.7万字1个月前