POJ-2376-Cleaning Shifts
来源:互联网 发布:十一选五做号软件 编辑:程序博客网 时间:2024/05/16 11:29
跟布雷达那个题比较类似,也属于贪心,只是这个题需要考虑的细节比较多。第一个是如果区间[1,2]存在,那么可以选[3,6]等区间,不必再次覆盖边界。然后还有最开始就没办法覆盖的问题~
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=30000;int n,m;struct Node{ int l; int r; bool operator < (const Node &a)const {if(l==a.l) return r>a.r;return l<a.l; }}a[maxn]; int main(){ while(scanf("%d%d",&n,&m)!=EOF) {for(int i=0;i<n;i++) scanf("%d%d",&a[i].l,&a[i].r);sort(a,a+n);if(a[0].l>1){ printf("-1\n"); continue;}int l=a[0].r,maxr=a[0].r,ans=1;for(int i=1;i<n;i++){ if(a[i].r<=l)continue; if(a[i].l>l+1) {if(a[i].l>maxr+1){ maxr=0; ans=-1; break;}ans++;l=maxr;if(l>=m) break;maxr=a[i].r; } elsemaxr=max(maxr,a[i].r);}if(l<m){ if(maxr>=m)ans++; elseans=-1;}printf("%d\n",ans); } return 0;}
0 0
- POJ 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ-2376-Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ-2376 Cleaning Shifts
- POJ 2376Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- POJ - 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- POJ 2376 Cleaning Shifts
- poj 2376 Cleaning Shifts
- 实现Android的不同精度的定位(基于网络和GPS)
- lass.exe应用程序错误的解决办法
- android中常用的弹出提示框
- 电脑应用程序错误:提示0xc000009错误怎么办?
- 爱分享 IE地址栏显示空白?360电脑救援巧修复
- POJ-2376-Cleaning Shifts
- 如何编写用例?
- Ffmpeg和SDL教程(五)如何同步视频
- TCP异常终止(reset报文)
- 电脑密码忘记了怎么办,怎样找回电脑密码?
- Android Sip学习(四)Android自带SipDemo详解
- VisionMobile:M2M生态系统的秘方(6):五、获取价值同时刺激增长
- 无法更新到Win8.1的原因与解决办法
- uva 1452 - Jump(约瑟夫环)