[贪心] 整数区间 HUSTOJ2874
2018-03-21 21:09
232 查看
题目描述
请编程完成以下任务:1.从文件中读取闭区间的个数及它们的描述;2.找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合,输出该集合的元素个数。输入
首行包括区间的数目n,1≤n≤10000,接下来的n行,每行包括两个整数a,b,被一空格隔开,0≤a≤b≤10000,它们是某一个区间的开始值和结束值。输出
第一行集合元素的个数,对于每一个区间都至少有一个整数属于该区间,且集合所包含元素数目最少。样例输入
4 3 6 2 4 0 2 4 7
样例输出
2
#include <iostream> #include <algorithm> using namespace std; struct qujian { int a,b; }qu[10000]; bool cmp(qujian x,qujian y) { return x.b<y.b; } //区间结束数从小到大排列 int main() { int n;while(cin>>n) { for(int i=0;i<n;i++) cin>>qu[i].a>>qu[i].b; sort(qu,qu+n,cmp); int tb=qu[0].b;int sum=1; for(int i=1;i<n;i++) { if(qu[i].a>tb) {sum++;tb=qu[i].b;} // > 则与tb时的区间不相交,需新元素 } cout<<sum<<endl; } return 0; }
相关文章推荐
- 贪心——整数区间
- 整数区间(贪心)
- 贪心,整数区间
- 整数区间(贪心)
- 贪心6--整数区间
- poj 1716 贪心(整数区间:2-覆盖)
- 【Codeforces Round 169 (Div 2) D】【简单数位贪心】Little Girl and Maximum XOR 区间选两数使得异或值尽可能大
- 统计输入的整数区间内回文数的个数
- Cleaning Shifts (贪心之区间覆盖)
- uva11400Lighting System Design(区间dp+贪心思想)
- UVAlive 2326 Moving Tables(贪心 + 区间问题)
- codeforces Gym 100187F F - Doomsday 区间覆盖贪心
- [ACM] POJ 1328 Radar Installation (贪心,区间选点问题)
- NYOJ 12 喷水装置(二)【贪心+区间覆盖】
- FZU 2144(几何+贪心区间覆盖)
- 区间相关贪心问题
- poj 1201 interval 差分约束/贪心+线段树区间更新
- 【Codeforces Testing Round 12B】【贪心】Restaurant 选取数量最多的不覆盖区间数
- 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
- 【 51NOD 1434 素数筛 】【数论+思维+筛素数】区间LCM【找到一个最小整数M,满足M>N,LCM(N+1,N+2,..,M-1,M)是LCM(1,2,3,4,.,N-1,N) 的倍数】