HDU 3461 Code Lock(并查集+二分求幂)】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3461 A lock you use has a code system to be opened instead of a key. The lock contains a sequence of wheels. Each wheel has the 26 letters of the English alphabet 'a' through 'z', in order. If you move a…
完全没思路,题目也没看懂,直接参考大牛们的解法. http://www.myexception.cn/program/723825.html 题意是说有N个字母组成的密码锁,如[wersdfj],每一位上的字母可以转动,变成字母表中的下一位. 如w可转动变成x,z变成a.但是题目规定,只能同时转动某个区间上的所有字母,如[1,3], 那么第1到第3个的所有字母要同时转动, 那么[wersdfj]经过一次操作就变成[xfssdfj].一共有M个区间是可以操作的. 经过可操作区间进行的操作得到的所有…
#include<stdio.h> #include<math.h> ]; int count; #define mod 1000000007 int find(int x) { int r=x; while(r!=set[r]) r=set[r]; int i=x; while(i!=r) { int j=set[i]; set[i]=r; i=j; } return r; } void merge(int x,int y) { int fx=find(x); int fy=fi…
很好的一个题,思想特别6 题意:给你小写字母个数n,每个字母可以向上翻动,例如:d->c,a->z.然后给你m对数(L,R)(L<=R),表示[L,R]之间可以同时向上翻动,且翻动后是相同的类型.问你最后可以出现多少种不同的类型. 例如:abcabc只给你[1,3],那么abcabc==zababc(代表相同类型) 首先答案是是26^(n-m+k),而我们只需要找到k就好了.而k只能有一种情况才会出现,就是:[1,3]与[4,6]出现后[1,6]再出现,这样k就加一个.而[1,3]与[3…
想不到这还可以用并查集解,不过后来证明确实可以…… 题意也有些难理解—— 给你一个锁,这个所由n个字母组成,然后这个锁有m个区间,每次可以对一个区间进行操作,并且区间中的所有字母要同时操作.每次操作可以将区间中所有字母+1.即把a变成b,把z变成a. 举个例子,比如有一个锁,由abcdef组成,前三个字母abc是一个区间,第四五个字母de是一个区间,那么如果对abc操作一次,则获得新锁bcddef,再对de区间操作一次,得bcdeff.但是,最后一个字母f是不能操作的. 如果一把锁通过对可操作区…
* 65536kb,仅仅能开到1.76*10^7大小的数组. 而题目的N取到了10^7.我開始做的时候没注意,用了按秩合并,uset+rank达到了2*10^7所以MLE,所以貌似不能用按秩合并. 事实上路径压缩也能够不用.............  题目的大意: 一个password锁上有编号为1到N的N个字母,每一个字母能够取26个小写英文字母中的一个.再给你M个区间[L,M].表示该区间的字母能够一起同步"添加"(从'a'变为'b'为增1.'z'增1为'a').假如一组pas…
Code Lock 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3461 Problem Description A lock you use has a code system to be opened instead of a key. The lock contains a sequence of wheels. Each wheel has the 26 letters of the English alphabet 'a' throug…
Travel Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1313    Accepted Submission(s): 472 Problem Description Jack likes to travel around the world, but he doesn’t like to wait. Now, he is tr…
题目链接 一开始是想不断的把边插进去,然后再去考虑我们每次都加进去边权为1的边,直到跑到第几次就没法继续跑下去的这样的思路,果不其然的T了. 然后,就是想办法咯,就想到了二分答案. 首先,我们一开始处理关系,(一开始看错了男女关系,结局懵逼了好久),注意输入是女选男.然后,就是去处理咯,我们先要去考虑,女生之间为朋友的话,又由于朋友关系是可以推的,所以我们不妨用并查集去维护这层关系,并且把总的关系推上到并查集的根上去. 然后,就是怎么样去想这个二分答案的过程了,我们可以假设玩了x轮,这么就代表了…
http://acm.hdu.edu.cn/showproblem.php?pid=3461 并差集和幂取模 这道题主要是求不可操作区间. #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #define maxn 10000010 #define ll long long using namespace std; ; int f[maxn]; int…