【基础练习】【贪心】codevs1214 线段覆盖题解
来源:互联网 发布:设计程序的软件 编辑:程序博客网 时间:2024/04/28 22:52
题目:已知数轴上0<N<10000条线段。每条线段按照端点Ai和Bi(Ai<>Bi,i=1..N)定义。端点坐标在(-999,999)内,坐标为整数。有些线段可能相交。编程实现删除最少数目的线段,使得余下的任意两条线段不相交。
codevs和洛谷数据范围不同 改一下常量maxn即可
思路是很简单的贪心
//codevs1214 线段覆盖 贪心//先排序,扫描一遍,每次保留右端点最小的线段,重叠的delete,画一张图即可证明#include<cstdio>#include<cstring>using namespace std;const int maxn=100+10;int l[maxn],r[maxn];bool st[maxn];int main(){int n;scanf("%d",&n);for (int i=0;i<n;i++){scanf("%d%d",&l[i],&r[i]);if (l[i]>r[i]){int temp=l[i];l[i]=r[i];r[i]=temp;} } for (int i=0;i<n;i++){ for (int j=i+1;j<n;j++){ if (r[i]>r[j]){ int temp1=r[i]; int temp2=l[i]; r[i]=r[j];l[i]=l[j]; r[j]=temp1;l[j]=temp2;}}}memset(st,true,sizeof(st));for (int i=0;i<n;i++){if (st[i]){for (int j=i+1;j<n;j++){if (st[j]&&(l[j]<r[i])){st[j]=false;}}}} int ans=0;for (int i=0;i<n;i++) if (st[i]) ans++;printf("%d",ans);return 0;}
——自牧归荑,洵美且异;匪女之为美,美人之贻。
1 0
- 【基础练习】【贪心】codevs1214 线段覆盖题解
- 【基础练习】【贪心】codevs1214 线段覆盖题解
- codevs1214 线段覆盖(贪心)
- codevs1214 线段覆盖(贪心,区间型)
- codevs1214 线段覆盖
- codevs1214 线段覆盖
- 洛谷1791/CODEVS1214线段覆盖
- 【基础练习】【线性DP】codevs3027 线段覆盖2题解
- 【基础练习】【贪心】tyvj1373 石子采集题解
- 贪心之线段覆盖
- Codevs_P1214 线段覆盖(贪心)
- 线段覆盖_codevs1214_贪心
- 【贪心】线段覆盖
- 【基础练习】【二分图匹配】【匈牙利算法】codevs1022 覆盖题解
- 【基础练习】【贪心】codevs2612 最优分解方案题解
- 线段覆盖 大数 贪心算法
- codevs 1124线段覆盖(贪心)
- pair排序 线段覆盖 贪心
- [LeetCode刷题] Insertion Sort List
- 手机号验证正则表达式
- 游戏外挂技术:编程实现内存检索(检索内存中指定数据)
- 2015年,移动开发都有哪些热点?
- Selenium-WebDriver & HTMLUnit
- 【基础练习】【贪心】codevs1214 线段覆盖题解
- 安卓属性动画
- 今天看到的几个位运算的面试题
- Linux 常用命令之tcpdump
- poj 1127 Jack Straws 线段判交+并查集
- noj0001 - 整数求和
- Union和Union all的区别
- 代理设计模式--Proxy
- Struts2中的全局结果集