codeforces 1106 E
显然是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的更多相关文章
- Codeforces 1106 简要题解
文章目录 A题 B题 C题 D题 E题 F题 传送门 A题 传送门 读错题还能过样例我给自己点个赞. 题意简述:给一个010101网格SSS,问满足Si,j=Si+1,j+1=Si+1,j−1=Si− ...
- Codeforces 1106 E. Lunar New Year and Red Envelopes 优先队列+dp
题意大致是Bob新年拿红包,每个红包可以在s-t时间内取,但是取了之后得在d+1时间开始才能继续取红包. 同时他女儿能在m个时间点阻止他取红包,求女儿阻止后Bob取得的w总和最小值. Bob取红包的策 ...
- 【Codeforces 1106E】 Lunar New Year and Red Envelopes
Codeforces 1106 E 题意:有\(k\)个红包,第\(i\)个红包可以在\(s_i\)到\(t_i\)的时间内抢,同时获得\(w_i\)的钱,但是抢完以后一直到\(d_i\)都不可以继续 ...
- Codeforces round 1106
Div 2 536 题目链接 我还是太菜了.jpg E 傻逼DP直接做 我居然调了1.5h 我真的是太菜了.jpg 堆+扫描线直接维护每个位置的贪心结果 然后要么使用干扰 要么就接受贪心的结果 #in ...
- 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} ...
- Codeforces Round #536 (Div. 2) E dp + set
https://codeforces.com/contest/1106/problem/E 题意 一共有k个红包,每个红包在\([s_i,t_i]\)时间可以领取,假如领取了第i个红包,那么在\(d_ ...
- Codeforces Round #536 (Div. 2)--1106D - Lunar New Year and a Wander
https://codeforces.com/contest/1106/problem/D 题意:求出字典序最小的走法 解法:走到每个点,都选取与这个点连通的序号最小的点,并且这个序号最小的点没有被访 ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
随机推荐
- 全面解决.Net与Java互通时的RSA加解密问题,使用PEM格式的密钥文件
作者: zyl910 一.缘由 RSA是一种常用的非对称加密算法.所以有时需要在不用编程语言中分别使用RSA的加密.解密.例如用Java做后台服务端,用C#开发桌面的客户端软件时. 由于 .Net.J ...
- settings设置中文admin
所以更改setttings.py 下 LANGUAGE_CODE = 'zh-Hans'即可
- 在Centos7下安装nghttp2
如果是Ubuntu18.04, 系统本身已经带了nghttp2了, 直接apt安装就可以. 下载源代码 https://github.com/nghttp2/nghttp2 如果是在Ubuntu下编译 ...
- fgrep: ifcfg-ifcfg-eth0: No such file or directory
[root@localhost ~]# service network restartfgrep: ifcfg-ifcfg-eth0: No such file or directoryfgrep: ...
- php的Allowed memory size of 134217728 bytes exhausted问题解决办法
php的Allowed memory size of 134217728 bytes exhausted问题解决办法 报错: Fatal error: Allowed memory size of 1 ...
- 构建自己的 Smart Life 私有云(二)-> 连通 IFTTT & Slack
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...
- Effective Java 第三版—— 86. 非常谨慎地实现SERIALIZABLE接口
Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ...
- C#中,重新排列panel中的按钮
https://www.cnblogs.com/hfzsjz/archive/2010/08/13/1799068.html void ArrangeButtons(Panel pn) { , y = ...
- HTML5学习笔记(二十九):Cookie和Session
HTTP协议本身是无状态的,这和HTTP最初的设计是相符的,每次请求都是创建一个短连接,发送请求,得到数据后就关闭连接.即每次连接都是独立的一次连接. 这样的话,导致的问题就是当我在一个页面登陆了账号 ...
- centos6 利用外部的smpt服务器计划任务发送邮件
centos可通过修改配置文件以使用外部SMTP服务器,达到不使用sendmail而用外部的smtp服务器发送邮件的目的, 操作如下: 一.安装mailx与sendmail # yum -y inst ...