poj 2376 Cleaing Shifts
来源:互联网 发布:淘宝下载到电脑桌面 编辑:程序博客网 时间:2024/05/29 03:10
蛮简单,贪心。
先找1开头的最远的
然后以原来右端点左边一点为起点,以现在的右端点为终点,继续搜索最远右端点,当超过现在最远右端点时,弹出,将现在右端点的左边一个点作为下次搜索的起点,下次搜索的右边端点在本次搜索过程中会得到。
有点混人
#include<algorithm>#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<set>using namespace std;struct interval{int left;int right;bool isused;}interv[33333];bool isused[33333];int cmp(const void *a,const void *b){interval* p1;interval* p2;p1=(interval*)a;p2=(interval*)b;if(p1->left!=p2->left)return p1->left-p2->left;elsereturn p1->right-p2->right;}int main(){ //freopen("H:\\in.txt","r",stdin);int N,T;cin>>N>>T;for(int i=0;i<N;i++){cin>>interv[i].left>>interv[i].right;}qsort(interv,N,sizeof(interval),cmp);int maxtime=0;int firstIntervLeftis2=0;for(int i=0;i<N;i++){if(interv[i].left==1&&interv[i].right>maxtime)maxtime=interv[i].right; else if(interv[i].left>1) { firstIntervLeftis2=i-1; break; }}if(maxtime==0){printf("-1\n");return 0;}int count=1;int start=firstIntervLeftis2;while(maxtime<T){bool isupdate=false;int tmpmax=maxtime;for(int i=start;i<N;i++){if(interv[i].left<=maxtime+1&&interv[i].right>tmpmax)//本次搜索起点start是上次的终点,本次搜索会得到下次搜索的终点,本次终点由上次搜索得到{tmpmax=interv[i].right;isupdate=true;}else if(interv[i].left>maxtime) { start=i-1; break; }}if(isupdate){maxtime=tmpmax;count++;}else{printf("-1\n");return 0;}}printf("%d\n",count);return 0;}
0 0
- poj 2376 Cleaing 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-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
- 蓝桥杯2014年以前JAVA历年真题及答案整理——01字串
- Oracle中NVL2 和NULLIF的用法
- static final成员变量的初始化时机
- PF_ring学习资料
- 蓝桥杯2014年以前JAVA历年真题及答案整理——闰年判断
- poj 2376 Cleaing Shifts
- 蓝桥杯2014年以前JAVA历年真题及答案整理——A+B问题
- 进制转换-HDOJ2031
- CVTE一面体验
- Servlet国际化i18n登录Demo
- 减少GC开销的5个编码技巧
- jetty 出现pwc6345问题
- 题目1074:对称平方数
- Understanding “Prototypes” in JavaScript【转】