hdu2068 RPG的错排 组合数/递推

Posted 奚政

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu2068 RPG的错排 组合数/递推相关的知识,希望对你有一定的参考价值。

 1 #include<stdio.h>
 2 long long arr[21];
 3 long long c(int a,int b)
 4 {
 5     long long i,sum=1,j;
 6     for (i=a,j=1;i>=a-b+1,j<=b;i--,j++) sum=sum*i/j;
 7     return sum;
 8 }
 9 void func()
10 {
11     int i;
12     arr[1]=0;arr[2]=1;
13     for(i=3;i<=26;i++)
14         arr[i]=(i-1)*(arr[i-1]+arr[i-2]);
15 }
16 int main(){
17     int n;
18     while(scanf("%d",&n)!=EOF&&n!=0){
19         int h=n/2,i;
20         long long ans=0;
21         func();
22         for(i=2;i<=h;i++){
23             ans+=c(n,i)*arr[i];
24             //printf("%I64d %I64d\\n",c(n,i),arr[i]);
25         }
26 
27         ans++;
28         printf("%I64d\\n",ans);
29     }
30     return 0;
31 }
View Code

 

以上是关于hdu2068 RPG的错排 组合数/递推的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2068 RPG错排 错排公式

HDU 2068 RPG的错排(错排公式 + 具体解释)

hdu2068 RPG的错排

RPG的错排

错排问题

hdu2049 不容易系列之——考新郎(组合,错排)