UVALive 6469 Deranged Exams

来源:互联网 发布:linux 打印内核 编辑:程序博客网 时间:2024/05/01 02:07
排列组合 容斥原理
#include <cstdio>#include <iostream>#include <cstring>using namespace std;typedef long long ll;ll A(int n){    ll r = 1;    for(int i = 1;i <= n;i++){        r *= i;    }    return r;}ll C(int n,int k){    return A(n)/(A(n - k) * A(k));}int main(){    int t;    while(~scanf("%d",&t)){        while(t--){            int p,n,k;            scanf("%d%d%d",&p,&n,&k);            printf("%d ",p);            ll sum = 0;            for(int i = 1;i <= k;i++){                if(i&1)sum += C(k,i) * A(n - i);                else sum -= C(k,i) * A(n - i);            }            //cout<<sum<<endl;            printf("%lld\n",A(n) - sum);        }    }    return 0;}

0 0
原创粉丝点击