摘要: http://poj.org/problem?id=1781大意:约瑟夫环,求最后剩下的位置是??该题为每两个划掉一个数。。eg:12345 划掉的为,2,4,1,5,最后剩下的为3.。。。解法:直接模拟肯定会超,注意本题是以2为循环的。。可以尝试找规律(话说我就直接模拟的。。傻啊。。。) 1-------1; 2---------1;3------------3;4-----------1;5---------3;6-------5;7---------7;。。。。。。。由此可见是以2的指数为增长的。。所以。。。 1 #include 2 #include 3 using namespac. 阅读全文
posted @ 2013-08-06 20:48 夜晓楼 阅读(248) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3358大意: 求一个小数的二进制的循环节和循环节开始的位置 解题思路: 1、 先对分数进行化简 2、 将一个分数转化为k进制数的方法 n/m for i = 0 to 需要的位数、 n = n * k; bit[i] = n / m; n = n mod m; 3. 如果出现循环 即 (ai * k^l ) mod m = aj; 即 k^l =1(mod m) 所以为求m的phi()。。 4、m不一定k 互质,若互质的话,... 阅读全文
posted @ 2013-08-06 16:54 夜晓楼 阅读(270) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=251373348K 1438MS C++ 1614B解题思路:欧拉路的应用 要点 :1、判断连通性2、欧拉路的判断(所有的节点的度为偶数或者只有两个奇数节点)连通性的判断: 并查集-----由于本题的节点是字符串,,并不好处理,所以用Trie树来获得id。。然后 find 、unin 和普通并查集一样,。连通性判断:并查集的祖先节点 ,,只有一个,若有多个即 不是连通图,也就不是欧拉路。。 1 #include 2 #include 3 #include 4 #define maxn 500005 5 using nam... 阅读全文
posted @ 2013-08-06 15:46 夜晓楼 阅读(264) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2001大意: 求一字符串的最短前缀解题思路:trie树的简单应用。。直接模版即可 1 #include 2 #include 3 using namespace std; 4 struct node{ 5 int cnt; 6 struct node *next[26]; 7 node(){//结构体中可以带函数,进行初始化 8 cnt =0; 9 memset(next,0,sizeof(next));10 }11 };12 char str[1003][30];13 no... 阅读全文
posted @ 2013-08-06 11:26 夜晓楼 阅读(219) 评论(0) 推荐(0) 编辑