wikioi 3027 线段覆盖 2
题目描述 Description
数轴上有n条线段,线段的两端都是整数坐标,坐标范围在0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合)且线段价值之和最大。
n<=1000
输入描述 Input Description
第一行一个整数n,表示有多少条线段。
接下来n行每行三个整数, ai bi ci,分别代表第i条线段的左端点ai,右端点bi(保证左端点<右端点)和价值ci。
输出描述 Output Description
输出能够获得的最大价值
样例输入 Sample Input
3
1 2 1
2 3 2
1 3 4
样例输出 Sample Output
4
数据范围及提示 Data Size & Hint
数据范围
对于40%的数据,n≤10;
对于100%的数据,n≤1000;
0<=ai,bi<=1000000
0<=ci<=1000000
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{int a;int b;int c;
}line[1005];
int cmp(const node x, const node y)
{return x.b < y.b;
}
int main()
{int n;cin >> n;for(int i=0;i<n;i++){cin>>line[i].a>>line[i].b>>line[i].c;}sort(line, line+n, cmp);int max = 0;for(int i=1; i<n; i++){int k = 0;for(int j=0; j<i; j++){if(line[i].a>=line[j].b){if(k<line[j].c){k=line[j].c;}}}line[i].c = line[i].c + k;if(max<line[i].c) max = line[i].c;}cout << max;return 0;
}
题解:序列型动态规划。
第一,按线段右端点由小到大的顺序排序;
第二,line[i].c = line[i].c + k;其中k为第i条线段(不包括)之前的线段中满足不覆盖条件的最大值,并以此设置前i条线段(包括第i条)可得到的最大值(即前面式子中二者的和)。
第三,从line[0].c到line[n-1].c中找到最大值,即为所求。
wikioi 3027 线段覆盖 2相关推荐
- CodeVS 3027 线段覆盖2(DP)
题目大意: http://codevs.cn/problem/3027/ 源码: #include <iostream>using namespace std;struct {int x, ...
- 【多题合集】线段覆盖1、2、3
1214 线段覆盖 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定x轴上的N(N<100)条线段,每个线段由它的二 ...
- ACM公选课第五节贪心4.14-5.4补+第六节上贪心线段覆盖
每一步都不从全局,找当下就好 特征(还有dp基础) 求解(比如最小生成树那个) 伪代码 就是每个房间的比例都不一样 要靠经验 事件序列问题(dp贪心经典题) 用贪心解,最先结束的,后面选最先结束且不重 ...
- P1803 凌乱的yyy / 线段覆盖
P1803 凌乱的yyy / 线段覆盖 https://www.luogu.org/problemnew/show/P1803 提交 题目提供者 yyy2015c01 嘤嘤嘤 评测方式 云端评测 标签 ...
- 线段覆盖(洛谷P1803题题解,C++语言描述)
题目要求 P1803题目链接 分析 这题是一个线段覆盖问题,但并不是很复杂,也是贪心思想. 想要尽可能放线段,不能重合(可以正好相交),那就可以每一次只关注右端点,尽可能地选择剩余未选的线段中右端点最 ...
- 【codevs30123037】线段覆盖4、5,姗姗来迟
3012 线段覆盖 4 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标, ...
- 1214线段覆盖问题——贪心法
题目描述: 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段之间会相互交叠或覆盖. ...
- 线段覆盖长度(c++)
问题描述 给出n个线段以及它们的左端点和右端点.我们要求得到这些线段覆盖部分的长度.如线段[1,2]和[2,3]覆盖了数轴上1到3这个部分,所以它们覆盖的长度就是2. 输入格式 第一行一个数n表示有n ...
- 【满分】【华为OD机试真题2023 JAVAJS】最少数量线段覆盖
华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 最少数量线段覆盖 知识点排序贪心 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定坐标轴上的一组线段,线段的起点和终 ...
最新文章
- Blog_mini完整部署文档
- 数学理论—— 蒙特卡洛近似
- 『 申请地址 』阿里云网盘限时开放内测申请!
- OpenCV——素描
- 手写一个简单的WinForm程序(2)
- 微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音
- java自动注入注解_Spring自动注解标签@Autowired不能注入xml配置的bean吗?
- 5分钟带你了解Kafka的技术架构 | 技术头条
- SSLScan工具 获取SSL信息
- 视图与表之间的异同点_灯芯绒面料印花与染色的异同点有哪些?做灯芯绒订单的了解一下...
- 基于机器学习的GitHub敏感信息泄露监控
- 单目相机内参标定的问题
- axure轮播图怎么设置循环轮播_Axure教程:轮播图制作步骤详解
- c++中的堆(优先级队列 priority_queue)
- JDK官网下载历史版本
- ssh关闭终端切断SSH连接
- win10 蓝牙搜不到设备怎么办
- Word——如何统计除去标点符号的字数
- android实战:密码箱一
- yolo数据集标注软件安装+使用流程