POJ - 1426 暴力枚举+同余模定理 [kuangbin带你飞]专题一
2017-02-14 10:15
302 查看
完全想不到啊,同余模定理没学过啊,想起上学期期末考试我问好多同学‘≡’这个符号什么意思,都说不知道,你们不是上了离散可的吗?不过看了别人的解法我现在会了,同余模定理介绍及运用点这里点击打开链接
简单说一下同余模定理:如果(a - b) / m = 0,说明a%m等于b%m,那么对于本题应该如何运用呢? 已知a % n = m,那么(a * 10 + x) % n = a * 10 % n + x % n = (a % n * 10 + x ) % n = (m *10 + x ) % n,有了这个结论,我们在已知111 % m的情况下,一步就能知道1111 % m的值,通过判断余数是否为0来判断是否可以整除m。
举个例子:
如果n = 6
1 % 6 = 1
10 % 6 = 1 * 10 % 6 = 4
11 % 6 = (1 * 10 + 1) % 6 = 5
100 % 6 = (4 * 10) % 6 = 4
101 % 6 = (4 * 10 + 1) % 6 = 5
110 % 6 = (5 * 10) % 6 = 2
111 % 6 = ( 5 * 10 + 1 ) % 6 = 3
....
....
已知递推直到余数为0,利用这种方法就解决了大数问题。
通过这题又学到了新的知识,很有收获。
AC代码
如有不当之处欢迎指出!
简单说一下同余模定理:如果(a - b) / m = 0,说明a%m等于b%m,那么对于本题应该如何运用呢? 已知a % n = m,那么(a * 10 + x) % n = a * 10 % n + x % n = (a % n * 10 + x ) % n = (m *10 + x ) % n,有了这个结论,我们在已知111 % m的情况下,一步就能知道1111 % m的值,通过判断余数是否为0来判断是否可以整除m。
举个例子:
如果n = 6
1 % 6 = 1
10 % 6 = 1 * 10 % 6 = 4
11 % 6 = (1 * 10 + 1) % 6 = 5
100 % 6 = (4 * 10) % 6 = 4
101 % 6 = (4 * 10 + 1) % 6 = 5
110 % 6 = (5 * 10) % 6 = 2
111 % 6 = ( 5 * 10 + 1 ) % 6 = 3
....
....
已知递推直到余数为0,利用这种方法就解决了大数问题。
通过这题又学到了新的知识,很有收获。
AC代码
#include<cstdio> typedef long long LL; const int maxn = 1e6 + 5; int mod[maxn], ans[150]; int main(){ int n; while(scanf("%d", &n) == 1 && n){ mod[1] = 1 % n; int i; for(i = 2; mod[i - 1] != 0; ++i) { mod[i] = (mod[i >> 1] * 10 + i % 2) % n; //暴力枚举当前位(0 or 1) } --i; int c = 0; while(i) { ans[c++] = i & 1; i >>= 1; } for(i = c - 1; i >= 0; --i) printf("%d", ans[i]); printf("\n"); } return 0; }
如有不当之处欢迎指出!
相关文章推荐
- [kuangbin带你飞]专题1 简单搜索 E - Find The Multiple POJ - 1426
- [kuangbin带你飞]专题一 简单搜索 E - Find The Multiple poj 1426
- [kuangbin带你飞]专题一 简单搜索E - Find The Multiple(POJ 1426)
- POJ 3984 & [kuangbin带你飞]专题一 简单搜索 K
- POJ 3087 Shuffle'm Up(kuangbin带你飞 专题一:简单搜索)专题一完结
- POJ 1751 Highways(kuangbin带你飞 专题六:最小生成树)
- POJ 1797 Heavy Transportation(kuangbin带你飞 专题四:最短路)
- [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher H POJ 2752
- [kuangbin带你飞]专题1 简单搜索 C - Catch That Cow POJ - 3278
- [kuangbin带你飞]专题七 线段树 G POJ 3264
- [kuangbin带你飞]专题一 简单搜索G - Shuffle'm Up(POJ 3087)
- [kuangbin带你飞]专题十二 基础DP1 N POJ 2533
- [kuangbin带你飞]专题一 简单搜索-D - Fliptile POJ - 3279
- [kuangbin带你飞]专题五 并查集 A POJ 2236
- POJ - 3126 bfs + 素数筛法 [kuangbin带你飞]专题一
- [kuangbin带你飞]专题一 简单搜索H - Pots(POJ 3414)
- [kuangbin带你飞]专题五 并查集 B POJ 1611
- POJ 2236 A - Wireless Network[kuangbin带你飞]专题五 并查集
- [kuangbin带你飞]专题五 并查集 G POJ 1456
- [kuangbin带你飞]专题五 并查集 N POJ 1308