摘要:
有几个结论:(1)若 a xor b = c,则 a xor c = b。 (2)a - b = b) (3)若 gcd(a,b)= a xor b = c ,(a >= b),由(2)得:a - b = k2),所以... 阅读全文
摘要:
题意:求c(m,n)/c(r,s)思路:先对素数打表,构造阶乘的素数,设置一个e数组用来存储素数对应序号i的个数,阶乘作为分子是+1,作为分母是-1,最后计算的时候直接ans*=pow(素数,对应的个数)即可#includeusing namespace std;#d... 阅读全文
摘要:
思路: x3=(a(a*x1+b)%10001)+b)%10001a*b+b+y*10001=x3-a*a*x1对应a*x+b*y=c;a=(a+1),b=10001,c=x3-a*a*x1。枚举a的值,扩欧解不定方程解出x。判断该x是否满足整个序列。注意:该题要用l... 阅读全文
摘要:
思路:直接暴力肯定会超时,先用快速幂计算出a^b%n的值,因为mod为n时最多有n种余数,而且f[i]由前两项决定,所以周期至多为n*n,当f[i]==f[1]&&f[i-1]==f[0]时可以找到周期。注意:我在每一次进行时用memset初始化f数组结果TLE,去掉... 阅读全文
摘要:
思路:构造模线性方程,然后用扩欧求解。方程:(x*c+a)%2^k=b 所以 x*c-y*2^k=b-a ,套ax+by=c,然后扩欧。注意:我开始写b=-2^k然后WA成狗,后来改成2^k AC了 。b没必要是负的,反正正负a和b的线性组合集都一样,况且此题不需要y... 阅读全文
摘要:
思路:根据唯一分解定理拆成素数乘积,然后求每一个素数幂次的最大公约数即为p的值。注意x为负数的时候要先把最大公约数一直除以2直到其为奇数。#include#include#include#include#include#include#include#include#... 阅读全文
摘要:
思路:唯一分解定理#includeusing namespace std;#define inf 0x3f3f3f3f#define ll long long#define fo freopen("in.txt","r",stdin)#define fc fclose... 阅读全文
摘要:
快速幂求n^n:int f1(int a,int b){ int t=1; while(b) { if(b % 2 != 0) { t*=a; b--; ... 阅读全文