贪心:区间相交问题
来源:互联网 发布:柯洁人工智能 编辑:程序博客网 时间:2024/05/16 02:36
/*区间相交问题问题描述: 给定x 轴上n 个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。编程任务: 给定n 个闭区间,编程计算去掉的最少闭区间数。数据输入: 第一行是正整数n,表示闭区间数。接下来的n行中,每行有2 个整数,分别表示闭区间的2个端点。结果输出:计算出的去掉的最少闭区间数。输入示例 3 10 20 10 15 20 15输出文件示例 2 */#include <iostream>using namespace std;struct Coordinate{//坐标结构体 int x; int y;};int main(){ int n,sum,now,a,b;//sum表示需要拿掉的坐标个数,now表示当前y最大的那个坐标的号 sum=now=0; struct Coordinate pos[20],t; cin>>n; for(int i=0;i<n;i++)//保证输入的两个数中,小的赋给x,大的赋给y { cin>>a>>b; pos[i].x=a<b?a:b; pos[i].y=a<b?b:a; } for(int i=0;i<n-1;i++)//终点,按y升序排序,因为是贪心算法,所以要尽量让剩下选择的余地极大化!也就是要尽量选择y小的 for(int j=i+1;j<n;j++) if(pos[i].y>pos[j].y) { t=pos[i]; pos[i]=pos[j]; pos[j]=t; } for(int i=1;i<n;i++)//now的初值是0,即第一个坐标(y最小),从第二个坐标开始一直到最后一个一个和now比,比较中now可能会改变 { if(pos[i].x<=pos[now].y)//如果相交,就舍弃,sun++ sum++; else//如果不相交,就now=i,如果以后的坐标不与新的now相交,那么肯定也不会与老的now相交 now=i; } cout<<sum<<endl;}
阅读全文
0 0
- 贪心:区间相交问题
- 区间相交问题(贪心)
- 区间相交问题(贪心)
- 8602 区间相交问题(贪心)
- 区间相交问题(贪心入门)
- 选择不相交区间问题 (贪心)
- 贪心算法区间不相交问题
- FOJ1230 区间相交问题(贪心)
- 贪心:最大相交区间
- ACMjava经典贪心区间问题,区间选点,不相交区间,区间覆盖
- 贪心算法之最大不相交区间数问题
- 贪心(1)选择不相交区间的问题
- UVALive 2326 Moving Tables(贪心+不相交区间问题)
- ZOJ 1076 Gene Assembly (贪心求区间不相交问题)
- 贪心算法-最大不相交区间数问题
- 区间相交问题(贪心)-算法设计与分析
- 选择不相交区间【贪心】
- NYOJ - 14 - 会场安排问题(区间相关问题---选择不相交区间-贪心算法)
- 网站被黑,到底是谁的责任?
- DataOutputStream和ObjectOutputStream在用法上有什么区别?
- MATLAB基础教程(2) 语言基础知识
- nginx中文文档、nginx在Windows,linux下启动和停止等命令
- CC2530中的源地址匹配
- 贪心:区间相交问题
- 4.1的三个小题目
- 逃离迷宫-bfs
- java设计模式-单例模式
- 利用位向量实现海量数据存储
- 初次加入到了编程的大家庭
- 连续总结第二十四天
- Jmock 原理简单说明
- 【Unity Shader入门精要】— 中级篇