UVALive 6653 Pattern Locker(组合数学)

来源:互联网 发布:linux查看内存报错 编辑:程序博客网 时间:2024/06/06 20:42

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=48735


题意:计算C(n,l)*l!+C(n,l+1)*(l+1)!.....+C(n,r)*r!.


#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=105;const ll MOD=10000000000007;int n,l,r;int main() {#ifdef ONLINE_JUDGE#else    freopen("test.in", "r", stdin);#endif    int ca=1;    int T;    scanf("%d",&T);    while(T--) {        scanf("%d%d%d",&n,&l,&r);        ll cur=1;        ll x=n*n;        ll res=0;        for(int i=1; i<=r; i++) {            cur=(cur*x--)%MOD;            if(i>=l) {                res=(res+cur)%MOD;            }        }        printf("Case %d: %lld\n",ca++,res);    }    return 0;}


0 0
原创粉丝点击