hdu 3944 DP?
来源:互联网 发布:网络报警平台网络诈骗 编辑:程序博客网 时间:2024/05/22 14:30
点这里
TLE到WA。。
改了无数次的代码。。
最后差在取模少了一次
看了题解就一直被题解牵着走。。
。。。解释有大佬的博客写的很清楚
。。记个教训
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;typedef long long ll;int f[10005][10005],mf[10005][10005];int prime[10005];bool vis[10005];int cnt=0,tt[10005]; int mod;void prime1(){ int i,j; memset(vis,true,sizeof(vis)); memset(tt,0,sizeof(tt)); for(i=2;i<10005;i++) { if(vis[i]) { prime[++cnt]=i; tt[i]=cnt; for(j=i+i;j<10005;j+=i) { vis[j]=false; } } }}int quickmod(int a,int b,int m){ int ans=1; a%=m; while(b) { if(b&1) ans=ans*a%m; b>>=1; a=a*a%m; } return ans;}void init(){ for(int i=1;i<=cnt;i++) { f[i][0]=mf[i][0]=1; for(int j=1;j<prime[i];j++) { f[i][j]=(f[i][j-1]*j)%prime[i]; mf[i][j]=quickmod(f[i][j],prime[i]-2,prime[i]); } }}//1000000000 99999999 9901//9002int ys(int n,int m){ if(m>n) return 0; if(m==n) return 1; int hh=tt[mod]; //cout<<tt[mod]<<" "<<n<<" "<<m<<endl; // printf("#%d %d %d %d \n",f[hh][n],mf[hh][n-m],mf[hh][m],(f[hh][n]*(mf[hh][m]*mf[hh][n-m])%mod)%mod); return f[hh][n]*(mf[hh][m]*mf[hh][n-m]%mod)%mod;}int lucas(int n,int m){ if(m==0) return 1; return ys(n%mod,m%mod)*lucas(n/mod,m/mod)%mod;}int main(){ int n,k; prime1(); init(); int d=1; while(~scanf("%d%d%d",&n,&k,&mod)) { if(k<=n/2) k=n-k; printf("Case #%d: %d\n",d++,(k%mod+lucas(n+1,k+1)%mod)%mod); } return 0;}
阅读全文
0 0
- HDU 3944 DP?
- hdu 3944 DP?
- hdu 3944 DP? lucas定理
- HDU DP
- DP? HDU
- DP? HDU
- DP? HDU
- 【dp】HDU
- 【dp】HDU
- 【dp】 HDU
- DP? HDU
- HDU 3944 DP?------Lucas 大组合数取余
- HDU 3944-DP?(Lucas定理+预处理)
- hdu 3944 DP? (预处理+卢卡斯定理)
- HDU 3944 DP? 【组合数取模+阶乘预处理】
- hdu 3944 DP? (Lucas定理)
- [HDU 3944] DP?组合数 Lucas定理
- HDU 1003 && HDU 1231 DP
- 菜鸟教程例题---第一题:【1,2,3,4】组成无重复的3位数
- 结合内核实现源码分析 select poll epoll区别
- Spring Data JPA实现分页Pageable的实例代码
- HDU2222 Keywords Search
- shiro安全框架
- hdu 3944 DP?
- 接口测试方案(Rest类型接口)
- Android中BitmapFactory.Options详解
- 华为OJ——将真分数分解为埃及分数
- eclipse--maven项目没有自动编译的问题
- UESTC
- 【Linux】top命令详解——进程管理器
- 数据结构排序1
- Python