其他分享
首页 > 其他分享> > P1866 编号

P1866 编号

作者:互联网

大致题意:

基本思路:

注:不用判断不可能的情况,先看个例子:

2
1 1

这一定是不可能的,在代码里执行的结果是1*0=0,所以如果有不可能的情况的话,就一定有"乘以0",所以不用判断不可能的情况

Code:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <list>
using namespace std;
#define R read()
#define GC getchar()
#define ll long long
#define ull unsigned long long
#define INF 0x7fffffff
#define LLINF 0x7fffffffffffffff
#define MOD 1000000007
ll read(){
    ll s=0,f=1;
    char c=GC;
    while(c<'0'||c>'9'){if(c=='-')f=-f;c=GC;}
    while(c>='0'&&c<='9'){s=s*10+c-'0';c=GC;}
    return s*f;
}
int n;
int m[60];
ll ans=1;
int main(){
    n=R;
    for(int i=1;i<=n;++i){
        m[i]=R;
    }
    sort(m+1,m+n+1);//先排序
    for(int i=1;i<=n;++i){
        ans=ans*(m[i]-i+1)%MOD;//乘法原理
    }
    printf("%d",ans%MOD);//输出
    return 0;
}

标签:P1866,ll,long,GC,兔子,编号,include,define
来源: https://www.cnblogs.com/FUXyao/p/12848760.html