uvalive 6938 区间dp
看到n范围和给的区间看着就像区间dp 然后怎么cmp感觉都没法进行区间合并
n的300误导了下 没有注意离散化之后对时间可以dp
然而这个dp感觉不太经得起证明的样子...
dp[i][j] -> 把完全包含在[i,j]里面的区间打完的cost
那么枚举裂缝 需要加上的是 跨越裂缝的区间的cost 这个没办法做
可以知道 如果有两个完全不相交的区间 它们肯定会分在裂缝的两边 所以不用管
所以我们只需要考虑那些 完全连接在一起的区间 选择最贵的一个打掉
而裂缝肯定在最贵的[l,r]里面
* 1 区间离散化不影响做题
* 2 不一定非要泛用决战型枚举裂缝
int a[305] , b[305] , c[305] ;
int dp[605][605] ;
int main () {
int t = read() ;
while(t -- ) {
flc(dp,0) ;
int n = read() ;
vector<int> e ;
rep(i,1,n) {
a[i]=read(),b[i]=read(),c[i]=read();
e.pb(a[i]) , e.pb(b[i]) ;
}
sort(e.begin(),e.end()) ;
e.erase(unique(e.begin(),e.end()),e.end()) ;
rep(i,1,n) {
a[i] = lower_bound(e.begin(),e.end(),a[i])-e.begin()+1 ;
b[i] = lower_bound(e.begin(),e.end(),b[i])-e.begin()+1 ;
}
int m = e.size();
rep(len,2,m) {
rep(i,1,m){
int j=i+len-1;
if(j>m)break ;
int C = -1 ;
int l = -1 , r = -1 ;
rep(k,1,n) {
if(a[k] >= i && b[k] <= j) {
if(C < c[k]) {
l = a[k] , r = b[k] ; C = c[k] ;
}
}
}
if(l == -1) {
dp[i][j] = 0 ;
}
else {
dp[i][j] = 999999999 ;
rep(k,l,r) {
dp[i][j] = min(dp[i][j] , dp[i][k-1] + dp[k+1][j] + C) ;
}
}
}
}
printf("%d\n" , dp[1][m]) ;
}
}
uvalive 6938 区间dp的更多相关文章
- UVALive - 7061 区间DP初步
题意:杀一只狼i会收到a[i]+b[i当前左边]+b[i当前右边]的攻击,求杀死所有狼的最小代价 #include<iostream> #include<algorithm> ...
- UVALive 4987---Evacuation Plan(区间DP)
题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- 【BZOJ-4380】Myjnie 区间DP
4380: [POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 162 Solved: ...
- 【POJ-1390】Blocks 区间DP
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5252 Accepted: 2165 Descriptio ...
- 区间DP LightOJ 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 做的第一道区间DP的题目,试水. 参考解题报告: http://www.cnblogs.c ...
- BZOJ1055: [HAOI2008]玩具取名[区间DP]
1055: [HAOI2008]玩具取名 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1588 Solved: 925[Submit][Statu ...
- poj2955 Brackets (区间dp)
题目链接:http://poj.org/problem?id=2955 题意:给定字符串 求括号匹配最多时的子串长度. 区间dp,状态转移方程: dp[i][j]=max ( dp[i][j] , 2 ...
- HDU5900 QSC and Master(区间DP + 最小费用最大流)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5900 Description Every school has some legends, ...
- BZOJ 1260&UVa 4394 区间DP
题意: 给一段字符串成段染色,问染成目标串最少次数. SOL: 区间DP... DP[i][j]表示从i染到j最小代价 转移:dp[i][j]=min(dp[i][j],dp[i+1][k]+dp[k ...
随机推荐
- iptables 实际操作 之 规则查询 2
在之前的文章中,我们已经总结过,iptables 为我们预定义了4张表,他们分别是raw 表,mangle表,nat表,filter表,不同的表拥有不同的功能. filter 负责过滤功能,比如允许那 ...
- java笔记十:java中的反射
Java中,反射是一种强大的工具.它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接.反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而 ...
- TP系统常量信息
[系统常量信息] 获取系统常量信息: 如果加参数true,会分组显示: 显示如下: [跨控制器调用] 一个控制器在执行的时候,可以实例化另外一个控制,并通过对象访问其指定方法. 跨控制器调用可以节省我 ...
- 【BZOJ3277/3473】串/字符串 后缀数组+二分+RMQ+双指针
[BZOJ3277]串 Description 字符串是oi界常考的问题.现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身). Inpu ...
- JavaSctipt语句for循环的思考
一.语法 for (语句 1; 语句 2; 语句 3) { 被执行的代码块; } 语句 1: 在循环(代码块)开始前执行, 可选. 语句 2: 定义运行循环(代码块)的条件, 可选, 如果省略了语句 ...
- git的安装-环境变量配置
windows安装git和环境变量配置 2015.10.12 评论(0) 10,729 点此嗨一下 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源 ...
- 全面Python小抄(转)
add by zhj: 有些地方不正确,有时间再改吧 原文:Python Cheat Sheet Cheat sheet of Python. Some basic concepts for Pyth ...
- 我的Android进阶之旅------>Android利用温度传感器实现带动画效果的电子温度计
要想实现带动画效果的电子温度计,需要以下几个知识点: 1.温度传感器相关知识. 2.ScaleAnimation动画相关知识,来进行水印刻度的缩放效果. 3.android:layout_weight ...
- kubernetes 1.7.2 安装 记录过程
系统信息 cat /etc/redhat-release CentOS Linux release (Core) 环境信息 IP地址 主机名称 10.10.6.11 master 10.10.6.12 ...
- Spring学习笔记2—AOP
1.AOP概念 AOP(Aspect Oriented Programming):面向切面编程,AOP能够将那些与业务无关,却为业务模块所共同调用的应用(例如事务处理.日志管理.权限控制等)封装起来, ...