I won't tell you this is about number theory Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 458    Accepted Submission(s): 142 Problem Description To think of a beautiful problem description is…
You are given two integers nn and mm . Calculate the number of pairs of arrays (a,b)(a,b) such that: the length of both arrays is equal to mm ; each element of each array is an integer between 11 and nn (inclusive); ai≤biai≤bi for any index ii from 1…
组合数的性质: C(n,m)=C(n,n-m); C(n,m)=n!/(m!(n-m)!); 组合数的递推公式: C(n,m)=  C(n-1,m-1)+C(n-1,m); 组合数一般数值较大,题目会要求取模;而求组合数的过程中一般会用到除法,所以会涉及除法取模的知识; 在除法取模的过程中,一般会求一个乘法逆元; 乘法逆元的定义:满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元; 求乘法逆元的方法: (b/a)modp;(a|b)p为质数; 1.欧拉定理或者费马小定理: 费马小定理是欧…
LL MyPow(LL a, LL b) { LL ret = ; while (b) { ) ret = ret * a % MOD; a = a * a % MOD; b >>= ; } return ret; } LL C(int n, int m) { ) ; LL a = fact[n], b = fact[n - m] * fact[m] % MOD; ) % MOD;//除以一个数,等于乘以这个数的乘法逆元, 然后是在MOD的情况下 } 上面的代码可以计算组合数取模, 能解决的规…
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 & 和 %操作之间的关系!故整理学习资料如下: 原文引自:http://blog.sina.com.cn/s/blog_7b7cad23010163vy.html 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&am…
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 & 和 %操作之间的关系!故整理学习资料如下: 原文引自:http://blog.sina.com.cn/s/blog_7b7cad23010163vy.html 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快. 按位与(Bitwise AND),运算符号为& a&am…
f(n) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 457    Accepted Submission(s): 279 Problem Description This time I need you to calculate the f(n) . (3<=n<=1000000) f(n)= Gcd(3)+Gcd(4)+…+Gc…
题意:给你n个东西,叫你把n分成任意段,这样的分法有几种(例如3:1 1 1,1 2,2 1,3 :所以3共有4种),n最多有1e5位,答案取模p = 1e9+7 思路:就是往n个东西中间插任意个板子,所以最多能插n - 1个,所以答案为2^(n - 1) % p.但是n最大有1e5位数,所以要用小费马定理化简. 小费马定理:假如p是质数,且gcd(a,p)=1,那么a (p-1)≡1(mod p) 所以我们只要把n - 1分解为n - 1 = k(p - 1) + m,而2^ k(p - 1)…
1千万长度的数对73和137取模.(两个数有点像,不要写错了) 效率要高的话,每15位取一次模,因为取模后可能有3位,因此用ll就最多15位取一次. 一位一位取模也可以,但是比较慢,取模运算是个耗时的运算. #include <cstdio> #define ll long long ll n,m; int p,cas; char s[10000005]; int main() { while(gets(s)){ n=m=p=0; while(s[p]){ for(int i=0;i<1…
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15197    Accepted Submission(s): 4695 Problem Description Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.  …