摘要: 思路:首先给出一个结论,就是最多用两个数就可以表示任何数的倍数。证明 :对于一个数字a,可以构造出的数字有a,aa,aaa,aaaa,aaaaa,……每一个数对于n都有一个余数,余数最多有n个,根据鸽巢原理,前n+1个数中,必然有两个余数相等那么二者之差,必定为n的倍数,形式为a……a0……0。有这个结论,就简单了先枚举一个数,然后枚举两个数,BFS即可代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define MAX 1000110 using 阅读全文
posted @ 2013-08-15 21:55 _随心所欲_ 阅读(246) 评论(0) 推荐(0)
摘要: 数学题,找循环节!!首先g(g(g(n)))=g(x) mod 1e9+7 则可知x有循环节1e9+7;之后x=g(g(n)),则可算出g(n)的循环节,在算出n的循环节就可以了!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define mod1 100000000710 #define mod2 22222222411 #define mod3 18312012 #define mod4 24013 using names 阅读全文
posted @ 2013-08-15 19:34 _随心所欲_ 阅读(181) 评论(0) 推荐(0)
摘要: 看了解题报告才知道怎么做!!题意:有 N 堆石子和 M 个石子回收站,每回合操作的人可以选择一堆石子,从中拿出一些 放到石子回收站里(可以放进多个回收站,每个回收站可以使用无数次),但每个石子回收站每次 只能接收特定数量的石子。不能操作的输。如果有人操作完之后,有任意一堆石子无法完全回收, 那么他直接输。 一个显然的结论是,每个游戏的 SG 值就是用 M 个回收站,完全回收这堆石子可行的最大 操作次数。由于最大的 Bi 比较小,立方暴力背包即可(比较显然的是,maxBi2 以上的周期是 minBi)。而最大也就是10000,所以可以直接暴力求解sg值,找到最大操作次数。ps:看到有人竟然仅仅用 阅读全文
posted @ 2013-08-15 12:05 _随心所欲_ 阅读(599) 评论(0) 推荐(0)