数据结构
ZYzyZzzz
东阳中学在读学生。
展开
-
【并查集】程序自动分析
原题链接 规模太大,先用离散化缩小。 ①考虑所有相等条件,把所有相等的变量捆绑进同一个集合中。 ②考虑所有不等条件,若两个变量处于同一集合中,则证明无法同时满足这两个条件。 代码实现: #include<bits/stdc++.h> #define N 100000+10 using namespace std; int n,m; int a[2*N],fa[2*N]; int x...原创 2020-05-03 11:11:59 · 195 阅读 · 0 评论 -
【并查集】搭配购买
原题链接 并查集+01背包。先将需要搭配购买的云用并查集绑定,再利用01背包求出价值的最大值。 代码实现: #include<bits/stdc++.h> #define N 10000+10 using namespace std; int n,m,w; int c[N],d[N]; int u,v; int fa[N]; int vv[N],ww[N]; int f[N]; i...原创 2020-05-03 07:39:19 · 902 阅读 · 0 评论 -
【并查集】格子游戏
原题链接 并查集裸体。如果将要用线连接的两个点位于同一个集合内,那么当前操作可以围成一个封闭的圈。否则,将两点合并到同一集合内。 代码实现: #include<bits/stdc++.h> #define N 1000000+10 using namespace std; int n,m,ans=0; int f[N]; int get(int x){ if(f[x]==x...原创 2020-04-28 16:11:11 · 547 阅读 · 0 评论