codevs3027(dp)
2024-08-21 14:45:26
题目链接: http://codevs.cn/problem/3027/
题意: 中文题目诶~
思路: dp
先给所有线段按照右端点值升序 sort 一下, 用 dp[i] 存储以第 i 条线段结尾的线段集合的最大价值,
那么动态转移方程式为: dp[i] = max(dp[i], dp[j] + gel[i].v), 其中 j < i 且 gel[i].l >= gel[j].r
注意 dp[n - 1] 不一定是最大, 维护一个 sol = max(sol, dp[i])
代码:
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std; const int MAXN = 1e3 + ; struct node{
int l, r, v;
}gel[MAXN]; int dp[MAXN], vis[MAXN]; bool cmp(node a, node b){
return a.r < b.r;
} int main(void){
int n, indx = , sol = ;
scanf("%d", &n);
for(int i = ; i < n; i++){
scanf("%d%d%d", &gel[i].l, &gel[i].r, &gel[i].v);
}
sort(gel, gel + n, cmp);
for(int i = ; i < n; i++){
dp[i] = gel[i].v;
for(int j = ; j < i; j++){
if(gel[i].l >= gel[j].r){
dp[i] = max(dp[i], dp[j] + gel[i].v);
}
}
sol = max(sol, dp[i]);
}
printf("%d\n", sol);
return ;
}
最新文章
- mysql-5.7日志设置
- 自动重启sqlserver服务
- HTTP协议 (三) 压缩
- iOS不显示状态栏(电池和信号栏)
- Thinking about think-time functions
- nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题
- Linux 多网卡的7种bond模式原理
- ubuntu 16.04 下载源
- 001.web前端-学习了解
- 原生js动态改变dom高度
- 【jQuery、原生】键盘键入两位小数
- JS的className,字体放大缩小
- JSP-表单元素示例
- CF AIM Tech Round 3 (Div. 2) D - Recover the String
- ASP.NET MVC上传图片的奇怪问题
- springMVC源码分析--AbstractUrlHandlerMapping(三)
- xshell的一些常用配置
- EF CodeFirst学习笔记002--更新数据库表
- JDBC存储过程调用
- python笔记-10(socket提升、paramiko、线程、进程、协程、同步IO、异步IO)