P1866 编号 题解

题目描述

太郎有N只兔子,现在为了方便识别它们,太郎要给他们编号。兔子们向太郎表达了它们对号码的喜好,每个兔子i想要一个整数,介于1和Maxnumber[i]之间(包括1和Maxnumber[i])。当然,每个兔子的编号是不同的。现在太郎想知道一共有多少种编号的方法。

你只用输出答案mod 1000000007即可。如果这是不可能的,就输出0.

输入格式

第一行是一个整数N。(1≤N≤50)

第二行N个整数Maxnumber[i]。(1≤Maxnumber[i]≤1000)

输出格式

一个整数

输入输出样例

输入 #1
2
5 8
输出 #1
35
本次小编为大家分享洛谷P1866编号的题解。
这个题,小编不太想多说什么.这是一个偏向数学知识的题.只不过数据有些大,(不过还是被long long钻了空子,计数器一定要开到最大呀!).
不过为了不超限,每一次循环都要%一下1000000007。(太险了,数据再大一点就要用高精了。)
还有一点要注意,题目给你的Maxnumber数组没有排序,要自行排一下序。(本人用的是sort函数,头文件名:#include<algorithm>)
废话少说,上代码!(逃)

#include<iostream>

#include<algorithm>

using namespace std;

int main()

{

   int a,b[51]={0},i;

   long long c=1;

  cin>>a;

  for(i=1;i<=a;i++)

  {

    cin>>b[i];

  }

  sort(b+1,b+a+1);

  for(i=1;i<=a;i++)

   {

     c=c*(b[i]-i+1);

     c=c%1000000007;

   }

   cout<<c;

   return 0;

}

posted on 2020-05-07 23:47  田宸玮  阅读(395)  评论(0编辑  收藏  举报

导航