一次考试的dp题



很明显是dp
看题目的时候我们先进行初步的思考,发现一个性质
一个点时不可能被重复覆盖三次的
很显然,如果一个点被覆盖了3次,这3个覆盖他的区间一定是有一个区间被完全包含的,因为有贡献的左右端点只有两个
这种dp一看就是要按照右端点排序,不然会有严重的后效性无法处理
排完序后还是有后效性,第一维的状态已经很明显了,是选到了第i个区间
看完题解后发现为了后效性的处理第二维一定是和所选区间的最后的元素有关系的
这里就设第二维为区间 [j,r_i] 被覆盖了一次(只能是一次 )
这样就考虑到了这个需要决策的选择的影响处理

这就是最后的dp状态
关于转移
有两种情况,一个是这个区间刚刚卡好,那就之间在这个里面转移,即:
另外一种,r[j]卡在了这个区间的里面,即:
然后就没了
code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read()
{
char c=getchar();int a=0,b=1;
for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1;
for(;c>='0'&&c<='9';c=getchar())a=a*10+c-48;
return a*b;
}
const int N=4001;
int f[N][N],awa[N][N],T,n,m,ans=1<<30;
struct qwq{int l,r,v;}a[N];
bool mmp(qwq a,qwq b)
{
return a.r<b.r;
}
int main()
{
freopen("intervals.in","r",stdin);
freopen("intervals.out","w",stdout);
T=read();
while(T--)
{
ans=(1<<30);
n=read();m=read();
for(int i=1;i<=n;i++)
{
a[i].l=read();
a[i].r=read();
a[i].v=read();
}
sort(a+1,a+n+1,mmp);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
f[i][j]=awa[i][j]=(1<<30);
}
}
for(int i=1;i<=n;i++)
{
if(a[i].l==1)
{
for(int j=1;j<=a[i].r;j++)
{
awa[i][j]=f[i][j]=a[i].v;
}
}
for(int j=1;j<i;j++)
{
if(a[j].r+1==a[i].l)
{
f[i][a[i].l]=min(f[i][a[i].l],max(awa[j][a[j].r],a[i].v));
}
if(a[i].l<=a[j].r&&a[j].r<=a[i].r)
{
f[i][a[j].r+1]=min(f[i][a[j].r+1],max(awa[j][a[i].l],a[i].v+a[j].v));
}
}
awa[i][1]=min(awa[i][1],f[i][1]);
for(int j=2;j<=a[i].r;j++)
{
awa[i][j]=min(awa[i][j],min(awa[i][j-1],f[i][j]));
}
if(a[i].r==m)ans=min(ans,awa[i][a[i].r]);
}
if(ans==(1<<30))ans=-1;
printf("%d\n",ans);
}
一次考试的dp题的更多相关文章
- [BZOJ1009] [HNOI2008] GT考试(KMP+dp+矩阵快速幂)
[BZOJ1009] [HNOI2008] GT考试(KMP+dp+矩阵快速幂) 题面 阿申准备报名参加GT考试,准考证号为N位数X1X2-.Xn,他不希望准考证号上出现不吉利的数字.他的不吉利数学A ...
- Codeforces Round #369 (Div. 2)---C - Coloring Trees (很妙的DP题)
题目链接 http://codeforces.com/contest/711/problem/C Description ZS the Coder and Chris the Baboon has a ...
- 4817 江哥的dp题d
4817 江哥的dp题d 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 已知1-N的排列P的LIS(最长上 ...
- 4809 江哥的dp题c
4809 江哥的dp题c 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有两个数x,y,一开始x=1,y= ...
- 4816 江哥的dp题b
4816 江哥的dp题b 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出两个1-N的随机排列A,B.若 ...
- 4815 江哥的dp题a
4815 江哥的dp题a 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出一个长度为N的序列A(A1,A ...
- HDU 2577 How to Type(dp题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...
- codevs4817 江哥的dp题d
4817 江哥的dp题d 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold [题目描述] Description 已知1-N的排列P的LIS(最长上升子序列)不超 ...
- 古韵之乞巧 题解 dp题
[noip模拟赛1]古韵之乞巧 描述 闺女求天女,更阑意未阑. 玉庭开粉席,罗袖捧金盘. 向月穿针易,临风整线难. 不知谁得巧,明旦试相看. ——祖咏<七夕> 女子乞巧,是七夕的重头戏 ...
- cf1061c 普通dp题
题解见https://blog.csdn.net/godleaf/article/details/84402128 这一类dp题是可以压缩掉一维空间的,本题枚举a1到an,枚举到ai时枚举ai的每个约 ...
随机推荐
- Linux系统运维之MYSQL数据库集群部署(主从复制)
一.介绍 Mysql主从复制,前段时间生产环境部署了一套主从复制的架构,当时现找了很多资料,现在记录下 二.拓扑图 三.环境以及软件版本 主机名 IP 操作系统 角色 软件版本 MysqlDB_Mas ...
- 基于JavaFX的扫雷游戏实现(三)——交互逻辑
相信阅读过上期文章,动手能力强的朋友们已经自己跑出来界面了.所以这期我要讲的是交互部分,也就是对于鼠标点击事件的响应,包括计时计数对点击事件以及一些状态量的影响. 回忆下第一期介绍的扫雷规则和 ...
- 【线上技术分享】即构&MobTech袤博移动游戏开发者全能进阶沙龙
游戏行业的兴起与当前移动互联网用户碎片化.休闲化的生活特征密不可分,在用户旺盛的需求下,游戏行业迎来了绝佳的发展机遇,今年上半年已多款游戏DAU过亿. 市场的火爆也为游戏行业带来了异常激烈的竞争,加上 ...
- 2023年icpc大学生程序设计竞赛-wmh
这次比赛名额比较少,程老师还是给了我们新生更多机会,非常感谢.第一次去这么远打比赛,也算是比较开心的,过去那天晚上就被队友拉着出去玩,玩的很嗨,打的很菜.vp去年题的时候是自信的,参加今年正式赛的时候 ...
- node.js中kafka的封装和高并发消费限流优雅降级以及egg-kafka的封装说明
HI!,你好,我是zane,zanePerfor是一款我开发的一个前端性能监控平台,现在支持web浏览器端和微信小程序端. 我定义为一款完整,高性能,高可用的前端性能监控系统,这是未来会达到的目的,现 ...
- 助力618-Y的混沌实践之路
一.写在前面 1.混沌是什么? 混沌工程(Chaos Engineering)的概念由 Netflix 在 2010 年提出,通过主动向系统中引入异常状态,并根据系统在各种压力下的行为表现确定优化策略 ...
- 数据分析师如何用SQL解决业务问题?
本文来自问答. 提问:数据分析人员需要掌握sql到什么程度? 请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗? 正 ...
- [FreeSWITCH]简单配置fifo呼入队列
拨号计划 <?xml version="1.0"?> <include> <context name="inboundcall"& ...
- WindowsServer安装sshd服务
系统版本:Windows Server 2016(有桌面) 网上有不少教程是用powershell在线安装,实测在server 2016上不行,但在Windows 10测试可行,不知道什么情况,所以改 ...
- 使用Java来开发物联网应用
这是Hello, Lithosphere Tutorials系列教程中的其中一篇. 感觉介绍用C/C++,用Python来开发物联网应用的文章比较多,用Java来做物联网的文章比较少. 这篇文章,介绍 ...