随笔分类 - 数论
摘要:/* 再来个题练练手 scanf longlong 有bug....... */ #include #include #include #define ll long long using namespace std; ll n,m,x,y,x0,g; ll f[3][3],a[3][3]; ll slow_mul(ll a,ll b,ll c) { ll ans=0; ...
阅读全文
摘要:/* 裸地矩阵乘法 矩阵很好想的 1 1 0 0 0 1 1 0 0 */ #include #include #include #define mod 1000000007 #define ll long long using namespace std; int T,n; ll f[4][4],a[4][4]; void mul(ll a[4][4],ll b[4][4]) { ...
阅读全文
摘要:#include #include #include using namespace std; int T,x,y,ans,g,l1,r1,l2,r2; int init() { int x=0;char s=getchar();bool f=0; while(s'9'){if(s=='-')f=1;s=getchar();} while(s>='0'&&sr1||l2>...
阅读全文
摘要:/* 画矩阵找规律发现是杨辉三角 Cg (i,j)= C (i+j,i); 贪心走的话 沿着0行(列)一直走然后拐直角 拐弯后每个格子都累加 Cg (n,0) + Cg (n,1) + Cg (n,2) + ... +Cg (n,m) 有n>m 即 C(n+0,n) + C (n+1,n) + C (n+2,n) + ... +C (n+m,n) 上式 = C (n+m+1,m); 然后...
阅读全文
摘要:/* 数学题0.0 最后答案:A(n,n)*A(n+1,2)*A(n+3,m)+A(n,n)*C(m,1)*A(2,2)*C(n+1,1)*A(n+2,m-1); 简单解释一下 +之前的很显然 先排男生 然后老师插空 然后女生插空 显然符合条件 但仔细一想会发现少算了一部分 就是 老师 女生 老师 的情况 在单独考虑着一种 先选夹在中间的女生(C(m,1)) 然后老师换位置 A(2,2) 然...
阅读全文
摘要:/* 题目:给出一个数 如果是prime 输出prime 否则输出他的最小质因子 Miller Rabin +Poller Rho 大素数判定+大数找质因子 后面这个算法嘛 基于Birthday Paradox 简单点说就是 在 1到100 内去一个数 ai ai==42的概率很小 但是如果取两个数 ai bi ai-bi==42 的概率就会变大 应用到找素因子上 就不用像试除法那样一个一个的...
阅读全文
摘要:/* 直接费马小定理 */ #include #include #include #include #define ll long long using namespace std; ll slow_mul(ll a,ll b,ll c) { ll ans=0; a=a%c;b=b%c; while(b) { if(b&1) ...
阅读全文
摘要:/* Lucas定理 C(n,m)%p(p为素数) C(n,m)与C(a[n],b[n])*C(a[n-1],b[n-1])*C(a[n-2],b[-2])*....*C(a[0],b[0])模p同余 a,b 是n,m在p进制下的数 有的推公式: (C(n%p,m%p,p)*Lcs(n/p,m/p,p))%p; 关键是求 C(n%p,m%p,p) 递归会很慢 for的话会爆掉 这里用一个定理:a...
阅读全文
摘要:/* 将n个不同的球放入m个不同的盒子的方案数 m^n */ #include #include #include using namespace std; int n,m,a[1010],l; int main() { scanf("%d%d",&n,&m); int k=m; while(k) { a[++l]=k%10; ...
阅读全文
摘要:/* 暴力做法 : 从2开始枚举,然后暴力判断g^(P-1) = 1 (mod P)是否当且仅当指数为P-1的时候成立 25分0.0 */ #include #include #include #include using namespace std; long long Mi(int a,int m,int p) { if(m==0)return 1; long long x...
阅读全文
摘要:/* 扩展欧几里得 ax%b==1 -> ax-by==1 求不定方程的一组解 使x为最小正整数解 */ #include #include #include using namespace std; int x,y,gcd; int Extend(int a,int b) { if(b==0) { x=1;y=0; gcd=a...
阅读全文

浙公网安备 33010602011771号