序列(rms模拟7-1)* *(贪心)
来源:互联网 发布:制造业 数据分析部门 编辑:程序博客网 时间:2024/05/16 09:54
序列(sequence.cpp)**
试题描述:
有一个整数序列,它的每个数各不相同,我们不知道它的长度是多少(即整数个数),
但我们知道在某些区间中至少有多少个整数,用区间(Li,Ri,Ci)来描述,表示这个整数序列
中至少有 Ci 个数来自区间[Li,Ri],给出若干个这样的区间,问这个整数序列的长度最少能
为多少?
输入格式:
第一行一个整数N,表示区间个数;
接下来N行,每行三个整数(Li,Ri,Ci),描述一个区间。
输出格式:
仅一个数,表示该整数序列的最小长度。
输入样例:
4
4 5 1
6 10 3
7 10 3
5 6 1
输出样例:
4
数据规模:
N<=1000,0<=Li<=Ri<=1000,1<=Ci<=Ri - Li + 1
题解
可以将所有的区间按照右端点从小到大排序来考虑问题。对于当前的区间假设满足了它的要求,即这个区间中至少有Ci 个数,那么怎么安排这些数的位置是无所谓的;又因为之后的区间都是右端点在当前这个区间右端点的右边区间,故贪心地选当前区间靠后的若干个数。这样不但可以满足当前区间的要求,还可以尽量满足后面区间的要求,并且这种贪心的方法是最优的。
代码
#include<bits/stdc++.h>#define F( i,a,b ) for( int i=(a);i<=(b);i++ )#define F_2( i,a,b ) for( int i=(a);i>=(b);i-- )#define oo 0x7fffffff#define LL long long#define N 1001#define M 10001using namespace std;int read(){ int f=1,s=0; char ch=getchar(); while( ch<'0' || ch>'9' ){ if( ch=='-' ) f=-1;ch=getchar(); } while( ch>='0' && ch<='9' ){ s=( s<<1 )+( s<<3 )+ch-'0';ch=getchar(); } return f*s;}int m,n;int ans,cnt,tot;struct node{ int l,r,c;}a[N];int used[N];bool my_cmp( const node &a,const node &b ){ return a.r<b.r;}int main(){ n=read(); F( i,1,n ) { a[i].l=read(); a[i].r=read(); a[i].c=read(); } sort( a+1,a+n+1,my_cmp ); F( i,1,n ) { cnt=0; F( j,a[i].l,a[i].r ) { if( used[j] ) cnt++; } F_2( j,a[i].r,a[i].l ) { if( cnt>=a[i].c ) break; if( !used[j] ) { used[j]=1; cnt++; } } } F( i,1,a[n].r ) if( used[i] ) ans++; cout<<ans<<endl; return 0;}
阅读全文
0 0
- 序列(rms模拟7-1)* *(贪心)
- 看守(rms模拟7-3)* * (推理)
- 塔(rms模拟9-1)* * (dp)
- 产品排序(rms模拟11-1)* *(dp)
- Tower( rms模拟4-3 ) * *(推理)
- 邮递员送信(rms模拟3-4)* * (dijkstra)
- 寻宝之后(rms模拟5-2)* * *(dp)
- 山(rms模拟11-3)* * *(数学/二分)
- 【Test 2016-10-1】模拟+差分序列+spfa最短路+贪心
- Hrbust1648Tailmon与序列(贪心?)
- 选机房(贪心模拟)
- Delete HDU5210 (模拟贪心)
- UVA 11039(模拟,贪心)
- LA 3602 (贪心,模拟)
- Crossing River(贪心+模拟)
- 国王游戏(贪心+模拟)
- J2ME:rms的对象序列化
- J2ME RMS 对象序列化存储
- 人工智能课程实验·过河问题/实验一 知识表示方法
- 负载均衡的几种基本算法和java代码实现
- HDU5047 Sawtooth 大数乘法|数学递推 Java&&C
- 统计学简介之八——一个总体参数的区间估计
- 分布式与集群的区别
- 序列(rms模拟7-1)* *(贪心)
- VS2010 MFC Dialog设置定时器
- 微信打开本地app
- Bomb HDU
- codeforces 847M Weather Tomorrow
- 商城HTML整站模版
- mysql报错Access denied for user 'ODBC'@'localhost' (using password: N O)解决
- 第十六届住博会毕加索智能科技有限公司承办BIM技术与建筑会议
- 面向对象编程