题目描述 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相关推荐

  1. CodeVS 3027 线段覆盖2(DP)

    题目大意: http://codevs.cn/problem/3027/ 源码: #include <iostream>using namespace std;struct {int x, ...

  2. 【多题合集】线段覆盖1、2、3

    1214 线段覆盖 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给定x轴上的N(N<100)条线段,每个线段由它的二 ...

  3. ACM公选课第五节贪心4.14-5.4补+第六节上贪心线段覆盖

    每一步都不从全局,找当下就好 特征(还有dp基础) 求解(比如最小生成树那个) 伪代码 就是每个房间的比例都不一样 要靠经验 事件序列问题(dp贪心经典题) 用贪心解,最先结束的,后面选最先结束且不重 ...

  4. P1803 凌乱的yyy / 线段覆盖

    P1803 凌乱的yyy / 线段覆盖 https://www.luogu.org/problemnew/show/P1803 提交 题目提供者 yyy2015c01 嘤嘤嘤 评测方式 云端评测 标签 ...

  5. 线段覆盖(洛谷P1803题题解,C++语言描述)

    题目要求 P1803题目链接 分析 这题是一个线段覆盖问题,但并不是很复杂,也是贪心思想. 想要尽可能放线段,不能重合(可以正好相交),那就可以每一次只关注右端点,尽可能地选择剩余未选的线段中右端点最 ...

  6. 【codevs30123037】线段覆盖4、5,姗姗来迟

    3012 线段覆盖 4 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 数轴上有n条线段,线段的两端都是整数坐标, ...

  7. 1214线段覆盖问题——贪心法

    题目描述: 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段之间会相互交叠或覆盖. ...

  8. 线段覆盖长度(c++)

    问题描述 给出n个线段以及它们的左端点和右端点.我们要求得到这些线段覆盖部分的长度.如线段[1,2]和[2,3]覆盖了数轴上1到3这个部分,所以它们覆盖的长度就是2. 输入格式 第一行一个数n表示有n ...

  9. 【满分】【华为OD机试真题2023 JAVAJS】最少数量线段覆盖

    华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 最少数量线段覆盖 知识点排序贪心 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定坐标轴上的一组线段,线段的起点和终 ...

最新文章

  1. Blog_mini完整部署文档
  2. 数学理论—— 蒙特卡洛近似
  3. 『 申请地址 』阿里云网盘限时开放内测申请!
  4. OpenCV——素描
  5. 手写一个简单的WinForm程序(2)
  6. 微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音
  7. java自动注入注解_Spring自动注解标签@Autowired不能注入xml配置的bean吗?
  8. 5分钟带你了解Kafka的技术架构 | 技术头条
  9. SSLScan工具 获取SSL信息
  10. 视图与表之间的异同点_灯芯绒面料印花与染色的异同点有哪些?做灯芯绒订单的了解一下...
  11. 基于机器学习的GitHub敏感信息泄露监控
  12. 单目相机内参标定的问题
  13. axure轮播图怎么设置循环轮播_Axure教程:轮播图制作步骤详解
  14. c++中的堆(优先级队列 priority_queue)
  15. JDK官网下载历史版本
  16. ssh关闭终端切断SSH连接
  17. win10 蓝牙搜不到设备怎么办
  18. Word——如何统计除去标点符号的字数
  19. android实战:密码箱一
  20. yolo数据集标注软件安装+使用流程

热门文章

  1. 发现一个很好的工具——VNN
  2. 给妹子讲python-S01E15详解python迭代环境
  3. HttpURLConnection与HttpClient浅析---转
  4. 关于 top、left 结合 translate 实现居中的原理探讨
  5. Creational模式之Builder模式
  6. spark mllib 预测之LinearRegression(线性回归)
  7. MaxCompute常用语句汇总(更新ing)
  8. Django学习(2)数据宝库
  9. 高级图像去雾算法的快速实现。
  10. ajax跨域问题解决方案