BZOJ2982——combination】的更多相关文章

2982: combination Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 734  Solved: 437[Submit][Status][Discuss] Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Inpu…
借(cao)鉴(xi)自popoqqq大爷的lucas定理的写法 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) #define clr(x,c)…
2982: combination Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 664  Solved: 397[Submit][Status][Discuss] Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Inpu…
1.题意:求 C(n,m) % 10007 ,10007是质数咯 n和m < 2000000000 2.分析:这个东西太大了,显然不能用n!的阶乘预处理的方式搞出来,也不能用递推公式搞出来 于是我们直接lucas定理  C(n,m) % MOD = C(n / MOD, m / MOD) * C(n % MOD, m % MOD)  % MOD #include <cstdio> #include <cstdlib> #include <cstring> #inc…
题面戳我 Solution 板子题 Code //It is coded by ning_mew on 7.25 #include<bits/stdc++.h> #define LL long long using namespace std; const LL MOD=10007; int T; LL A[MOD],B[MOD],n,m; void pre(){ A[0]=B[0]=A[1]=B[1]=1; for(int i=2;i<MOD;i++)B[i]=-(MOD/i)*B[M…
Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Input   第一行一个整数t,表示有t组数据.(t<=200)   接下来t行每行两个整数n, m,如题意. Output T行,每行一个数,为C(n, m) mod 10007的答案. Sample Input…
Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Input   第一行一个整数t,表示有t组数据.(t<=200)   接下来t行每行两个整数n, m,如题意. Output T行,每行一个数,为C(n, m) mod 10007的答案. Sample Input…
传送门 貌似就是lucas的板子题啊. 练一练手感觉挺舒服的^_^ 代码: #include<bits/stdc++.h> #define mod 10007 #define ll long long using namespace std; int T_T; ll n,m,fac[mod+5],ifac[mod+5]; inline ll lucas(ll a,ll b){ if(a<b)return 0; if(a<mod&&b<mod)return fa…
Description LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样.那么LMZ能够持续多少个这样的夜晚呢?当然,LMZ的一年有10007天,所以他想知道答案mod 10007的值.(1<=m<=n<=200,000,000) Input   第一行一个整数t,表示有t组数据.(t<=200)   接下来t行每行两个整数n, m,如题意. Output T行,每行一个数,为C(n, m) mod 10007的答案. 思路: 不想说什么,标准…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2982 $C(N,M)\% P = C(N\% P,M\% P) * C(N/P,M/P)\% P$ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ],fac[]; int C(int x,int y){ ; return fac[x]*inv[fac[y…