
ACM_并查集
文章平均质量分 82
_天道酬勤_不忘初心
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 1856 More is better(求最大秩的集合 )
题目地址:点击打开链接题意:给一群人挑出来人数最多的一群思路:求最大秩的集合AC代码:#include #include #include #include #include #include #include #include #include #include using namespace std;const int maxn = 10000010;原创 2015-09-13 20:54:26 · 390 阅读 · 0 评论 -
HDU 1198 Farm Irrigation(求集合个数)
题目地址:点击打开链接思路:并查集,是一道好题,主要通过i*n+j来唯一标示每一个格子,其实i乘以大于等于n的每一个都可以唯一标识每一个格子,但考虑到pre数组是从1开始逐渐顺序递增的,所以只能通过乘以n来唯一标识,这样i*n+j的和也是从1开始逐渐顺序递增的AC代码:#include#includeusing namespace std;char a[100][100];in原创 2015-07-19 10:19:57 · 336 阅读 · 0 评论 -
HDU 5326 Work(求每个人的下属,直接和间接)
题目地址:点击打开链接思路:刚开始思路就错,只记录了直接的下属,没想到下属的下属也属于老大管,深搜就可以解决,看到大神用并查集也A了,太叼了AC代码1:#include#includeusing namespace std;int a[110],visit[110],n;int dfs(int up){ int i,sum = 0; for(i=1; i原创 2015-07-31 10:04:31 · 518 阅读 · 0 评论 -
HDU 5441 Travel(求各个集合里的秩能组合多少对,只能在一个集合里组合)
题目地址:点击打开链接题意:每2个城市间有一个权值,还有每次询问会给一个权值,城市间的权值小于询问的权值即可以走,问某个人能走多少对城市,注意(a,b),(b,a)算一对不同的城市思路:刚开始用数组存储点和点的距离,然后每次搜强连通分量,搜出来强连通分量的个数不就是每个集合里面的个数么,假如说一个集合里面有n个值,那么总共有n(n-1)对,好理解吧,每个城市和其余城市连一次,不用除以2,因原创 2015-09-14 10:45:31 · 696 阅读 · 0 评论 -
HDU 1811 Rank of Tetris(拓扑排序确定排名,排名有重复的情况)
题目地址:点击打开链接思路:拓扑排序的两个性质:①如果一次入队入度为零的点大于1则说明拓扑排序序列不唯一②如果排序的总个数小于给定的个数,则说明存在回路用并查集把成绩相等的人放在一起。然后根据关系,把他们连起来。然后拓扑排序。如果拓扑排序结束之后,拓扑到的边数和输入的边数不同,那么肯定出现环了,那么就是信息错误。0否则,如果某个时刻出现两个点的入度都为0原创 2015-09-15 20:27:40 · 451 阅读 · 0 评论 -
HDU 5438 Ponds(拓扑排序+并查集)
题目地址:点击打开链接题意:p个顶点m条边构成的无向图,每次删除边数小于等于1的节点,和他相连的边消失,一直按照此规则删除点,求最后剩下的几个集合中,点数为奇数的价值和思路:先拓扑排序不断删除点,用并查集求出集合,然后再求点数为奇数的集合的价值总和,价值总和超int了,用long long 存AC代码:#include #include #include #include原创 2015-09-16 16:49:55 · 483 阅读 · 0 评论 -
杭电校赛(油菜花王国)
油菜花王国Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2189 Accepted Submission(s): 567Problem Description 程序设计竞赛即将到来,作为学校ACM集训队主力原创 2015-12-02 19:53:32 · 460 阅读 · 0 评论 -
HDU 1232 畅通工程(求集合个数)
思路:并查集模板AC代码:原创 2015-07-18 00:12:29 · 492 阅读 · 0 评论