poj 2376
来源:互联网 发布:谷歌人工智能 开源 编辑:程序博客网 时间:2024/05/29 10:59
思路如下,
首先看最大的和最小是否把1到t包含,如果不能包含,输出-1
剩下的就贪心,在s小于当前的e+1时找最大的e,如果找不到,就退出,输出-1
否则就输出结果。
代码如下
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;struct Node{int s,e;}a[25005],temp;bool cmp(Node a,Node b){if(a.s!=b.s)return a.s<b.s;elsereturn a.e<b.e;}int main(){int n,t;scanf("%d %d",&n,&t);int mi=1000005,ma=0;for(int i=0;i<n;i++){scanf("%d %d",&a[i].s,&a[i].e);mi=min(mi,a[i].s); ma=max(ma,a[i].e);}if(mi>1||ma<t) printf("-1\n");else{sort(a,a+n,cmp);temp=a[0];for(int i=0;i<n;i++){if(a[i].s!=a[0].s) break;temp=a[i]; }int flag=0;int cnt=1;while(temp.e<t&&flag==0){cnt++;int p=-1,ee=temp.e;for(int i=0;i<n;i++){if(a[i].s>temp.e+1) break;if(a[i].e>ee) {ee=a[i].e; p=i;}}if(p==-1) flag=1;else{temp=a[p];}}if(flag==1) printf("-1\n");else printf("%d\n",cnt);} }
阅读全文
0 0
- POJ 2376
- POJ 2376
- poj 2376
- poj 2376
- 【POJ】2376
- poj 2376
- POJ 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ-2376-Cleaning Shifts
- poj 2376 Cleaning Shifts
- poj 2376 Cleaing Shifts
- POJ 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 区间覆盖
- poj 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- Boolean Expressions(表达式求值)
- python爬虫慕课网实例(二)
- 邮箱不可用 550 User has no permission
- Hadoop集群环境搭建笔记
- Winform 巧用组合界面组合,实现业务解耦和复杂界面呈现
- poj 2376
- Unity3D学习笔记之AssetBundle包加密
- hpuoj【1053】进制转换【水题】
- css浮动
- css3动画属性集合
- Action/Service/DAO
- 1080ti安装opencv3.2的几个问题
- 人脸检测--【代码过程,错误记录】
- Hook匹配过程----之一