这个题是个数学题啊。

总体思路不是很难,每个兔子有一个编号,只要不停的看下一个兔子有多少可选编号,再乘上之前的所有可能性就可以算出一共的编号方法。

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,a[100],shu=1;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);//把兔子的编号范围从大到小排序,这样前面的兔子可选编号一定再后面的兔子可选编号之内。
for(int i=0;i<n;i++)
{
shu*=a[i]-i;//第i只兔子前面已经有i-1个编号被占用了,由于我从零开始,不用再给i-1。
shu%=1000000007;//取模
}
cout<<shu<<endl;
return 0;
}

总结:这个题应该算个数论模拟,不要想的太复杂。

最新文章

  1. 第1章 重构,第一个案例(3):运用多态取代switch
  2. Eclipse 代码格式:“{ }”的格式设置
  3. 【RabbitMQ】CentOS安装RabbitMQ,及简单的Java客户端连接
  4. 显示全部select change 异常
  5. iOS 关于本地持久化存储的探讨
  6. 测试markdown发布
  7. Gradle学习系列之五——自定义Property
  8. PAT 1010
  9. [YZOJ1579]&amp;&amp;[BZOJ2450]arr
  10. Struts的核心配置
  11. hdu 5671 矩阵变换
  12. android 转帖留链接
  13. MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 二
  14. strstr() strpos() 获取db报错,判断报错中是否包含字符串,判断错误类型
  15. django使用xlwt导出excel文件
  16. Android程序启动过程深入解析
  17. Yii2设计模式——Yii2中用到哪些设计模式?
  18. python绘制中文词云图
  19. Canvas 渲染模式
  20. nlog 的手动配置

热门文章

  1. position中的四种属性
  2. Java学习笔记4(多线程)
  3. 阿里云Ubuntu配置jdk+tomcat
  4. async/await到底该怎么用?如何理解多线程与异步之间的关系?
  5. git 的使用:
  6. C#数据结构与算法系列(十二):递归(Recursion)
  7. Docker编写镜像 发布个人网站
  8. GDI+ 双缓冲实现
  9. METS介绍
  10. Repeater 横向显示数据