摘要: 像这种直接调用STL函数就能出结果的题,现在应该不会再出了吧。。。/* * hdu3283/win.cpp * Created on: 2012-11-4 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set& 阅读全文
posted @ 2012-11-04 18:30 moonbay 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 这题考查的内容还是比较多的,不过仅限于思路,如果模板准备充足的话还是很快的。这题首先要对问题进行转换。题目是给一个L,问由8组成的最短的能被L整除的数。不妨设长度为x。那么就是要求最小的x使8*[1+10+10^2+...+10^(x-1)] ≡ 0 (mod L)。也就是求最小的x使(8/9)*(10^x-1) ≡ 0 (mod L)。也就是求最小的x使10^x ≡ 1 (mod y),其中y = 9 * L / gcd(8, 9 * L)。于是存在满足题意的x当且仅当gcd(10, y) = 1。对于有解的情况,显然,x = φ(y)时,10^φ(y) ≡ 1 (mod y)成立,且每个符 阅读全文
posted @ 2012-11-04 17:39 moonbay 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 水到什么都不想说了。/* * hdu3079/win.cpp * Created on: 2012-11-4 * Author : ben */#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <iostream>#include <algorithm>#include <queue>#include <set>#include <map> 阅读全文
posted @ 2012-11-04 17:25 moonbay 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这题是去年成都网络赛的题,当时没做出来,杯具呀。其实最关键的就是要懂得取余一定会循环的,如果能够找出循环节,就是一个巨大的突破。然后就是g(n)的求法,很显然硬求是不可能的,我们去年做这题的时候试图去找g(n)的通项公式,都找得差不多了,但实际上那毫无意义。因为我们是要找循环节,所以应该一层层地找。先看g(n) % 1000000007到哪里会循环。可以用矩阵的方法求g(n),暴力打出来,发现循环节是222222224。再来看g(g(n)) % 1000000007到哪里会循环。因为g(g(n)) % 1000000007对g(n)每隔222222224结果就会循环一次,所以g(g(n)) % 阅读全文
posted @ 2012-11-04 13:48 moonbay 阅读(176) 评论(0) 推荐(0) 编辑