显然是dp啊,dp[i][j]表示到时间i打扰了j次的最小收益

显然要排序,官方题解说set没看懂,优先队列就行啊。

按照时间排序,显然这样扫的话可以保证当前时间点的点在优先队列里吧,

然后有打断和不打断两种方式。搞一下就行了。

这个题其实只要想清楚,我在每个点能选的红包是唯一的,这样子一想就变得很**了。

头脑混乱写不出来不能怪我啊,我老人家持续表演了一个月的小品了啊

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct Red{
ll s,t,d,w;
bool operator<(const Red& a)const{
if(w==a.w)
return d<a.d;
return w<a.w;
}
}r[];
bool cmp(Red a,Red b){
if(a.s==b.s){
if(a.w==b.w){
return a.d>b.d;
}
return a.w>b.w;
}
return a.s<b.s;
}
int n,m,k;
ll dp[][];
priority_queue<Red> q;
int main() {
ios::sync_with_stdio(false);
cin>>n>>m>>k;
for(int i=;i<=n+;i++)for(int j=;j<=m;j++)dp[i][j]=1e18;
for(int i=;i<=k;i++){
cin>>r[i].s>>r[i].t>>r[i].d>>r[i].w;
}
sort(r+,r++k,cmp);
int j=;
for(int i=;i<=n;i++){//
for(;j<=k;){
if(r[j].s<=i) {
q.push(r[j]);
j++;
} else break;
}
while (!q.empty()&&q.top().t<i) q.pop();
if(q.empty()){
for(int l=;l<=m;l++){
dp[i+][l]=min(dp[i+][l],dp[i][l]);
}
continue;
}
Red tmp = q.top();
for(int l=;l<=m;l++) {
dp[min(tmp.d+,n+1ll)][l]=min(dp[min(tmp.d+,n+1ll)][l],dp[i][l]+tmp.w);
}
for(int l=;l<=m;l++){
dp[i+][l]=min(dp[i+][l],dp[i][l-]);
}
}
ll ans = 1e18;
for(int i=;i<=m;i++){
ans = min(ans,dp[n+][i]);
}
cout<<ans<<endl;
}

codeforces 1106 E的更多相关文章

  1. Codeforces 1106 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 传送门 A题 传送门 读错题还能过样例我给自己点个赞. 题意简述:给一个010101网格SSS,问满足Si,j=Si+1,j+1=Si+1,j−1=Si− ...

  2. Codeforces 1106 E. Lunar New Year and Red Envelopes 优先队列+dp

    题意大致是Bob新年拿红包,每个红包可以在s-t时间内取,但是取了之后得在d+1时间开始才能继续取红包. 同时他女儿能在m个时间点阻止他取红包,求女儿阻止后Bob取得的w总和最小值. Bob取红包的策 ...

  3. 【Codeforces 1106E】 Lunar New Year and Red Envelopes

    Codeforces 1106 E 题意:有\(k\)个红包,第\(i\)个红包可以在\(s_i\)到\(t_i\)的时间内抢,同时获得\(w_i\)的钱,但是抢完以后一直到\(d_i\)都不可以继续 ...

  4. Codeforces round 1106

    Div 2 536 题目链接 我还是太菜了.jpg E 傻逼DP直接做 我居然调了1.5h 我真的是太菜了.jpg 堆+扫描线直接维护每个位置的贪心结果 然后要么使用干扰 要么就接受贪心的结果 #in ...

  5. Codeforces Round #536 (Div. 2) F 矩阵快速幂 + bsgs(新坑) + exgcd(新坑) + 欧拉降幂

    https://codeforces.com/contest/1106/problem/F 题意 数列公式为\(f_i=(f^{b_1}_{i-1}*f^{b_2}_{i-2}*...*f^{b_k} ...

  6. Codeforces Round #536 (Div. 2) E dp + set

    https://codeforces.com/contest/1106/problem/E 题意 一共有k个红包,每个红包在\([s_i,t_i]\)时间可以领取,假如领取了第i个红包,那么在\(d_ ...

  7. Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander

    https://codeforces.com/contest/1106/problem/D 题意:求出字典序最小的走法 解法:走到每个点,都选取与这个点连通的序号最小的点,并且这个序号最小的点没有被访 ...

  8. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  9. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

随机推荐

  1. 阿里云ACE深圳同城会 开始报名

    大家好,阿里云 ACE深圳同城会本周末第一活动,主要大家一起聚聚,互相认识和熟悉,未来一起玩儿一起进步~ 通知大家一个好消息,当前凡是加入深圳ACE同城会组织(群)的朋友,通过跟群主报名申请,将有机会 ...

  2. OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2

    3.5.Canny边缘检测 OpenCV提供了Canny边缘检测函数来识别边缘.它有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用最大抑制(NMS).在检测到的边缘上使用双阀值去除 假 ...

  3. cleanmymacchinese下载链接

    由于新的chinese版本还没有公开发布下载链接,所以找到如下地址 https://dl.devmate.com/com.macpaw.zh.CleanMyMac3/CleanMyMacChinese ...

  4. ConcurrentHashMap代码解析

    ConcurrentHashMap (JDK 1.7)的继承关系如下: 1. ConcurrentHashMap是线程安全的hash map.ConcurrentHashMap的数据结构是一个Segm ...

  5. 移动应用开发技术选型:WebApp>HybridApp>NativeApp

    一:概念辨析 Web App:生存在浏览器里的应用,只能运行在浏览器里,宿主是浏览器,不是操作系统.资源一般都在网络上,就是一个触屏版的网站.如:微信公众号.不需要在设备上下载安装,只需通过浏览器即可 ...

  6. 字符串截取mysql

    2017-05-26 --SUBSTR(addtime, 1, 10) --substr(string string,num start,num length); --string为字符串 --sta ...

  7. manjaro折腾手记

    以前装过Arch,有点折腾,写了个hello world就卸载了.没用过AUR,甚至也没去了解. 听说manjaro继承Arch,几乎开箱即用,对硬件支持非常好,源里面的软件更新非常快.但是没有装中文 ...

  8. KADEMLIA算法

    一.概述 基于异或距离算法的分布式散列表(DHT), 实现了去中心化的信息存储于查询系统: Kademlia将网络设计为具有160层的二叉树,树最末端的每个叶子看作为节点,节点在树中的位置由同样是16 ...

  9. 基于weixin-java-mp 做微信JS签名 invalid signature签名错误 官方说明

    微信JS签名详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang= ...

  10. mysql存储过程详解 mysql存储过程和函数

    第20章:存储程序和函数 目录 20.1. 存储程序和授权表 20.2. 存储程序的语法 20.2.1. CREATE PROCEDURE和CREATE FUNCTION 20.2.2. ALTER ...