zoj 3761(并查集+搜索)】的更多相关文章

题意:在一个平面上,有若干个球,给出球的坐标,每次可以将一个球朝另一个球打过去(只有上下左右),碰到下一个球之后原先的球停下来,然后被撞的球朝这个方向移动,直到有一个球再也撞不到下一个球后,这个球飞出,球只能是朝上下左右四个方向打,并且要一个球四个方向都没有球了,这个球就不能打了.问说最少平面上剩几个球,并且给出打球的方案. 思路:把四个方向可以连成一块的球用一个并查集连起来,有多少个并查集,最后就会剩下多少个球,然后就是从并查集的叶子节点往根结点输出路径.这里要注意,不能重复输出,还有就是,在…
传送门 正解是并查集+矩阵树定理. 但由于数据范围小搜索也可以过. 我们需要知道最小生成树的两个性质: 不同的最小生成树中,每种权值的边出现的个数是确定的 不同的生成树中,某一种权值的边连接完成后,形成的连通块状态是一样的 那么可以根据乘法原理按权值分步,将每一步得到的结果相乘. 每次分步的计算可以用搜索/矩阵树定理来实现. 代码: #include<bits/stdc++.h> #define mod 31011 #define N 15 #define M 1005 using names…
islands Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/problem/show/1385 Description Deep in the Carribean, there is an island even stranger than the Monkey Island, dwelled by Horatio Torquemada Marley. Not only it has a rectangu…
点权并查集的反向离线操作 题目大意:有n个stars,每一个都一定的“颜值”.然后stars与stars之间可以相连,query c表示再与c相连的stars中,颜值比c高的,stars的标号,如果有多个, 输出最小那一个.destroy x y,表示将x和y这条边销毁掉. 题解:并查集只能加边不能删边,所以我们可以倒着来,那么每个destroy就相当于join了.然后就是套上一个点权并查集(不会的自己学). code: #include<bits/stdc++.h> using namesp…
Description There are so many different religions in the world today that it is difficult to keep track of them all. You are interested in finding out how many different religions students in your university believe in. You know that there are n stud…
题目链接: http://codeforces.com/problemset/problem/691/D 题目大意: 给一个1到N的排列,M个操作(1<=N,M<=106),每个操作可以交换X Y位置上的数字,求可以得到的最大字典序的数列. 题目思路: [搜索][并查集] 这题可以用搜索或者并查集写,都能过. 把位置分成若干块,每一块里面的位置都是可以被这一块里另一个位置经过若干次调换的(类似强连通,位置可达). 然后把每一块位置里的 位置按从小到大排序,位置上的值按从大到小排序,依次填入位置…
Conquer a New Region Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 657 Accepted Submission(s): 179 Problem Description The wheel of the history rolling forward, our king conquered a new region i…
传送门 题意: 给出集合U,V,集合U有n个元素,集合V有m个元素: 有 m 个操作,mi : s1 s2 有一条s1指向s2的边(s1,s2可能属于第三个集合,暂且称之为K集合): 指向边具有传递性,即 A->B,B->C <=> A->C 求V集合中被 U 指向的元素: 题解: 并查集debug个了两天,始终wa,今天上午上数字逻辑课的时候,灵光一闪,又想到了一个可能会出错的点: 经过一番挣扎,终于判断了此题不能用并查集做,蓝瘦香菇~~~~~~ 还记得并查集中的Union…
Problem Description In order to get rid of Conan, Kaitou KID disguises himself as a teacher in the kindergarten. He knows kids love games and works out a new game called "hand in hand". Initially kids run on the playground randomly. When Kid say…
第一题 Mushroom的序列 大意: 给一个序列,求一段连续最长区间满足:最多改变一个数,使得区间是严格的上升子序列. 解: 直接扫描一遍,记一个最长上升子序列编号.然后从每一个编号为1 的点来判断是否可以将两个序列合并,有两种情况,讨论需要注意多种子情况...我可能想的比较复杂,所以第一遍写的时候少考虑了一些相等的情况,就WA 了一个点. #include<iostream> #include<cstdio> #include<cstring> #include&l…