集训作业 洛谷P1866 编号
2024-10-09 10:14:47
这个题是个数学题啊。
总体思路不是很难,每个兔子有一个编号,只要不停的看下一个兔子有多少可选编号,再乘上之前的所有可能性就可以算出一共的编号方法。
#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章 重构,第一个案例(3):运用多态取代switch
- Eclipse 代码格式:“{ }”的格式设置
- 【RabbitMQ】CentOS安装RabbitMQ,及简单的Java客户端连接
- 显示全部select change 异常
- iOS 关于本地持久化存储的探讨
- 测试markdown发布
- Gradle学习系列之五——自定义Property
- PAT 1010
- [YZOJ1579]&;&;[BZOJ2450]arr
- Struts的核心配置
- hdu 5671 矩阵变换
- android 转帖留链接
- MongoDB:利用官方驱动改装为EF代码风格的MongoDB.Repository框架 二
- strstr() strpos() 获取db报错,判断报错中是否包含字符串,判断错误类型
- django使用xlwt导出excel文件
- Android程序启动过程深入解析
- Yii2设计模式——Yii2中用到哪些设计模式?
- python绘制中文词云图
- Canvas 渲染模式
- nlog 的手动配置