并查集
取竹
Hai capito?
展开
-
[bzoj1202][HNOI2005]狡猾的商人[并查集]
给出[l,r]的区间和,相当于s[r]-s[l](前缀和思想) 一旦已经知道了 s[a]-s[b],s[b]-s[c],再给出一条[a,c]就可以判断了 #include #include #include using namespace std; int w; int n,m; int s,t,v; int fa[102]; int v1[102]; bool flag; int pa原创 2017-03-06 21:03:42 · 626 阅读 · 0 评论 -
[bzoj] 1077: [SCOI2008]天平
看了并查集神做法,发现后面还是暴力。。 先用并查集将各个相等的砝码连在一起作为一个整体。 然后根据当前条件求出可以求出的值,不能求出具体值的求出可能是1-2还是2-3。 然后就是最重要的,枚举i,j再枚举a,b,i,j可能的值。 因为题目要将只有唯一的选法加入,所以如果4个砝码出现同时存在>, 建议可以去看看fuxey的 #include #include using names原创 2017-05-18 21:26:33 · 428 阅读 · 0 评论 -
[bzoj]1015: [JSOI2008]星球大战starwar
这道题如果直接做很困难,但如果我们倒过来做,此题就变成了一个可以用并查集做的题。 注意还没还原到的星球不能和当前一起处理。 #include #include using namespace std; const int N=400005; int n,m,num,x,y,k; int atk[N],fa[N]; bool yes[N],in[N]; int ans[N]; int fi,原创 2017-06-08 20:11:24 · 318 阅读 · 0 评论