2048-2049-2068 (完全错位)
Posted lhl2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2048-2049-2068 (完全错位)相关的知识,希望对你有一定的参考价值。
//2048H - 神、上帝以及老天爷 #include<stdio.h> #define L 20 int main() { int i; long long f[L+1],g[L+1]; long long an[L+1]; int x,n; double y; f[1]=0; g[1]=1; for(i=2;i<=L;i++) { g[i]=(i-1)*g[i-1]+f[i-1]; f[i]=(i-1)*g[i-1]; } an[0]=1; for(i=1;i<=L;i++) { an[i]=an[i-1]*i; } scanf("%d",&n); for(;n>0;n--) { scanf("%d",&x); y=(double)f[x]/an[x]*100; printf("%.2lf%% ",y); } return 0; }
//2049I - 不容易系列之(4)——考新郎 #include<stdio.h> #define L 20 long long chu(int i,int j,long long k) { int x=i,y=j,z; while(1){ x=x%y; if(x==0){ z=y; break; } y=y%x; if(y==0){ z=x; break; } } j/=z; i/=z; return (k/i*j); } int main() { int i,j; long long f[L+1][L+1],g[L+1]; f[0][0]=1; f[0][1]=0; g[1]=1; for(i=2;i<=L;i++){ g[i]=(i-1)*g[i-1]+f[0][i-1]; f[0][i]=(i-1)*g[i-1]; } for(j=1;j<=L;j++){ for(i=1;i<=j;i++){ f[i][j]=chu(i,j,f[i-1][j-1]); } } int m,n; int c; scanf("%d",&c); for(;c>0;c--) { scanf("%d %d",&n,&m); printf("%lld ",f[n-m][n]); } return 0; }
2068H - RPG的错排 #include<stdio.h> #define L 25 int main(){ long long f[L/2]={0,0,1}; for(int i=3;i<=L/2;i++) f[i]=(i-1)*(f[i-1]+f[i-2]); long long c[L+1][L+1]; for(int i=0;i<=L;i++) c[i][0]=c[i][i]=1; for(int i=2;i<=L;i++) for(int j=1;j<=i/2;j++) c[i][i-j]=c[i][j]=c[i-1][j-1]+c[i-1][j]; long long g[L+1]; for(int i=1;i<=L;i++) g[i]=1; for(int i=1;i<=L;i++) for(int j=2;j<=i/2;j++) g[i]+=c[i][j]*f[j]; int n; while(scanf("%d",&n)&&n) printf("%lld ",g[n]); return 0; }
以上是关于2048-2049-2068 (完全错位)的主要内容,如果未能解决你的问题,请参考以下文章