博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1214 线段覆盖wiki oi
阅读量:4314 次
发布时间:2019-06-06

本文共 1934 字,大约阅读时间需要 6 分钟。

题目描述 
Description

    给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,……N.这些坐标都是区间(-999,999)的整数。有些线段之间会相互交叠或覆盖。请你编写一个程序,从给出的线段中去掉尽量少的线段,使得剩下的线段两两之间没有内部公共点。所谓的内部公共点是指一个点同时属于两条线段且至少在其中一条线段的内部(即除去端点的部分)。

输入描述 
Input Description

    输入第一行是一个整数N。接下来有N行,每行有二个空格隔开的整数,表示一条线段的二个端点的坐标。

输出描述 
Output Description

    输出第一行是一个整数表示最多剩下的线段数。

样例输入 
Sample Input

3

6  3

1  3

2  5

样例输出 
Sample Output

2

数据范围及提示 
Data Size & Hint

0<N<100

分析:

贪心解法:首先将线段端点调整为左端点小于(或等于)右端点;第二,根据右端点将线段从小到大排序;第三,扫描一遍,每次遇到的第一个与当前的max不想交的即为最优选择。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 using namespace std; 9 struct node10 {11 int a,b;12 }s[101];13 int cmp(node x,node y)14 {15 return x.b
>n;21 for(int i=0; i
>s[i].a>>s[i].b;24 if(s[i].a>s[i].b) swap(s[i].a, s[i].b);25 }26 sort(s,s+n,cmp);27 int ans=0,max=-1000;28 for(int i=0; i
=max)31 {32 ans++;33 max=s[i].b;34 }35 }36 cout<
<

序列型动态规划(DP):前两步同上,第三步,dp[i] = max(dp[i], (dp[j]+1))。第四,选择dp数组中最大值即为结果。

 

#include 
#include
using namespace std;int main(){ int n,a[100],b[100],dp[100]; cin >> n; for(int i=0; i
> a[i] >> b[i]; if(a[i]>b[i]) { int t = a[i]; a[i] = b[i]; b[i] = t; } } for(int i=n-1; i>0; i--) { for(int j=0; j
b[j+1]) { int t = b[j]; b[j] = b[j+1]; b[j+1] = t; t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } } int max = 0; for(int i=1; i
=b[j]) dp[i] = dp[i]>(dp[j]+1)?dp[i]:(dp[j]+1); if(max < dp[i]) max = dp[i]; //cout << "i:" << i << " j:" << j << " dp[i]:" << dp[i] <<" dp[j]:" << dp[j] << endl; } } cout << max; return 0;}

 

转载于:https://www.cnblogs.com/ganhang-acm/p/4181438.html

你可能感兴趣的文章
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
完美解决 error C2220: warning treated as error - no ‘object’ file generated
查看>>
使用SQL*PLUS,构建完美excel或html输出
查看>>
前后台验证字符串长度
查看>>
《算法导论 - 思考题》7-1 Hoare划分的正确性
查看>>
win64 Python下安装PIL出错解决2.7版本 (3.6版本可以使用)
查看>>
获取各种类型的节点
查看>>
表达式求值-201308081712.txt
查看>>
centos中安装tomcat6
查看>>
从Vue.js窥探前端行业
查看>>
学习进度
查看>>
poj3368 RMQ
查看>>
“此人不存在”
查看>>
github.com加速节点
查看>>
解密zend-PHP凤凰源码程序
查看>>
python3 序列分片记录
查看>>
Atitit.git的存储结构and 追踪
查看>>
atitit 读书与获取知识资料的attilax的总结.docx
查看>>