POJ 1716 Integer Intervals
来源:互联网 发布:java微信扫码支付开发 编辑:程序博客网 时间:2024/05/20 14:42
此题属于贪心类型。题的大意就是说在数轴上给n个区间,让你找一个点集,使这个点集和每个区间的交点至少有两个。让你求这个点集至少有几个点。大体思路是先让这些区间的最后一个数从小到大排序。然后让此区间的第一个数和前一个区间最后一个数和最后一个数比较。一开始我做此题想多了,把类分多了,分多的类都在我的代码中注释了,看一下吧,希望别犯和我一样的错误。
#include <stdio.h>#include <algorithm>using namespace std;struct sa{int start;int end;} data[10000];int cmp(sa a,sa b){return a.end<b.end;}int main(){int n;int x[10000],y[10000];while(scanf("%d",&n)!=EOF){int count=2;for(int a=0;a<n;a++){ scanf("%d%d",&data[a].start,&data[a].end); } sort(data,data+n,cmp);for(int c=0;c<n;c++){x[c]=data[c].end-1; y[c]=data[c].end;} intmax=y[0]; int daoer=x[0];for(int b=1;b<n;b++){if(data[b].start<=daoer) { /*if(data[b+1].end<=daoer) { max=y[b]; daoer=x[b]; } if(data[b].end==max) continue; if(data[b].end>max) { max=y[b]; daoer=x[b]; }*/ continue;}else if(data[b].start<=max){count++;daoer=max;max=y[b];}else{count+=2;max=y[b];daoer=x[b];}}printf("%d\n",count);}return 0;}
- POJ 1716 Integer Intervals
- poj 1716 Integer Intervals
- POJ 1716 Integer Intervals
- poj 1716-Integer Intervals
- POJ 1716 Integer Intervals
- POJ 1716 Integer Intervals
- POJ 1716 Integer Intervals
- POJ 1716 Integer Intervals
- POJ 1716 Integer Intervals
- POJ-1716 Integer Intervals
- poj 1716 Integer Intervals
- poj 1716 贪心 Integer Intervals
- poj 1716 Integer Intervals (贪心)
- POJ 1716 Integer Intervals 笔记
- POJ 1201 Intervals || POJ 1716 Integer Intervals 差分约束
- POJ--1716[Integer Intervals] 差分约束
- poj 1716 ——Integer Intervals
- (Relax 贪心1.7)POJ 1716 Integer Intervals
- 怎样花两年时间去面试一个人
- 【优化】HDU1856——The More The Better(顺便求解犇们JAVA版为啥不过)
- UVA 400 - Unix ls(排版题)
- Boost正则表达式教程
- URL传值符号转换
- POJ 1716 Integer Intervals
- NSClassFromString,NSSelectorFromString
- [LeetCode] Distinct Subsequences
- Lucene分词实现:Analyzer、TokenStream
- In-app purchase [Environment: Sandbox] bug
- 一篇很全面的freemarker教程
- SQLServer:定时作业的设置方法
- 进制转换
- android面试六