每日算法之递推排序(P1866 编号)
兔子也是数字控;每个兔子都有自己喜欢的数字区间,找出能让所有兔子都满意的组合。
将所有兔子喜欢的序号按从小到大排序,此时如果小序号的兔子选择了一个数字,则之后的兔子只要排除排在它之前的兔子数(由于已经排过序,减去前面兔子选择的次数就是本兔兔可以做出的选择数,如果为零则意味着没有选择直接输出0)。这样将所有兔子可做的选择数相乘即可得到结果。
注意因为数字过大,取模1e9+7,如果用int(数值范围2147483648)已经超出了,此时数值范围必须要比该模数的平方大,long long(9223372036854775808,即9.223e18)即可满足该要求,所以要注意提升结果精度。
//P1866 编号
#include<iostream>
#include<algorithm>
using namespace std;
const int MAX=;
int Rabbit[MAX]; int main()
{
long long n,sum=;
cin>>n;
for(int i=;i<n;i++)
{
cin>>Rabbit[i];
}
sort(Rabbit,Rabbit+n);
for(int i=;i<n;i++)
{
if(Rabbit[i]<=i)
{
cout<<<<endl;
return ;
}
else sum=(sum*(Rabbit[i]-i))%; //排序后后者便可以在排除前者已有号码的情况下再进行选择排序,减去的序号数为排前面的兔子总数
} cout<<sum<<endl;
return ;
}
每日算法之递推排序(P1866 编号)的更多相关文章
- Java实现 蓝桥杯 算法提高 递推求值
		算法提高 递推求值 时间限制:1.0s 内存限制:256.0MB 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) ... 
- 从三数之和看如何优化算法,递推-->递推加二分查找-->递推加滑尺
		人类发明了轮子,提高了力的使用效率. 人类发明了自动化机械,将自己从重复的工作中解脱出来. 提高效率的方法好像总是离不开两点:拒绝无效劳动,拒绝重复劳动.人类如此,计算机亦如是. 前面我们说过了四数之 ... 
- 数据结构与算法之递推算法 C++与PHP实现
		数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的.往往是在发展一种算法的时候,构建了适合于这样的算法的数据结构.一种数据结构假设脱离了算法,也就没有存在的价值了. 算法的作用----解决 ... 
- 穷举算法和递推算法(Java)
		穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况.穷举算法效率不高,但是适合一些没有明显规律可循的场合. 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范 ... 
- 【uva 12627】Erratic Expansion(算法效率--递推)
		题意:初始1个红气球,每小时后,1个红气球会变成3个红气球和1个蓝气球,而1个蓝气球会变成4个蓝气球.问经过N小时后,第L~R行一共有多少个红气球. 解法:问行数就定义f[i][j]表示 i 小时后前 ... 
- 算法笔记_091:蓝桥杯练习 递推求值(Java)
		目录 1 问题描述 2 解决方案 1 问题描述 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n- ... 
- 【Atcoder】AGC 020 B - Ice Rink Game 递推
		[题意]n个人进行游戏,每轮只保留最大的a[i]倍数的人,最后一轮过后剩余2人,求最小和最大的n,或-1.n<=10^5. [算法]递推||二分 [题解]令L(i),R(i)表示第i轮过后的最小 ... 
- permutation 2(递推 + 思维)
		permutation 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ... 
- LA 3882 经典约瑟夫环问题的数学递推解法
		就是经典约瑟夫环问题的裸题 我一开始一直没理解这个递推是怎么来的,后来终于理解了 假设问题是从n个人编号分别为0...n-1,取第k个, 则第k个人编号为k-1的淘汰,剩下的编号为 0,1,2,3. ... 
随机推荐
- DataGrip for Mac破解步骤详解  亲测好用
			https://blog.csdn.net/le945926/article/details/81912085 
- 研究大华3G设备接入自主视频开发平台
			版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/fengshuiyue/article/details/24311977 近期项目上须要接入3G摄像头 ... 
- Jenkins 部署自动化测试脚本(15)
			自动化测试脚本开发完成以后,希望可以把脚本放在公共的环境下提供一个入口供大家一起使用,目前最好的解决方案就是需要把代码部署在Jenkins上,下面看下如何在Jenkins配合自动化测试任务: 1.首先 ... 
- .net  core2.0获取host的方法
			Example there's an given url: http://localhost:4800/account/login 获取整个url地址: 在页面(cstml)中 Microsoft.A ... 
- pagination.js  使用
			pagination.js 使用方式 $('.paginationjs').pagination({ dataSource: 'DetailImage?handler=Search', locator ... 
- Win10安装docker的一些注意事项
			安装环境:Win10专业版本64位,Win7.Win8 等需要利用 docker toolbox 来安装. 一.占用C盘空间问题的解决 1. 把vhdx虚拟硬盘从默认的C盘转移到其他盘,这样下载镜像后 ... 
- QNET,一款给力的APP弱网络测试工具
			目前在测试移动设备上进行弱网络专项测试的方案主要有两种: 通过Android设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET-Simulator等.基本思路是在PC上装一个F ... 
- Linux下阅读源代码工具安装
			综合他们多篇博客,做一个自己的总结(从0开始,记录过程) 系统:ubuntu 16.04 vim:7.4.1689 内容来源: https://www.cnblogs.com/wangzhe1635 ... 
- PAT 乙级 1044 火星数字 (20 分)
			1044 火星数字 (20 分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, j ... 
- Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序
			Java时间日期类综合运用,开发可视化日历小程序 由键盘输入指定格式的日期,打印这个月的日历 1.代码 import java.text.DateFormat; import java.text.Pa ... 
