http://codeforces.com/contest/887/problem/D
一个模特有两种活动。
① 拍照片,挣钱 a。 ②开演唱会,花费b
给定模特这两种工作的时间表。
模特可以选定一个时间举办一个座谈会,那么他拍照片的钱变c。开演唱会会花费d。
要求再模特座谈会之前和后len天 都不能赔钱。 要求你输出最小的座谈会天数。 没有输出-1.。
思路:枚举第i天作为 开始的茶话会的时间(茶话会是可以和当天其他的活动撞的,并且当天有影响),然后计算后len天是否有负数。
T了。
正确的写法类似尺取,维护正常天数的前缀和,再计算以i活动为初始,(i活动已经被影响了,因为要尽可能的早,所以时间再第i-
1个活动的 下一天就举办茶话会),长度问len的特殊天数的茶话会。

绿色部分是 茶话会举办的时间,i为第一个被影响的天数。红色部分为len。cf上很多的代码算的影响天数都是从i开始的,我深感不解
是某个大佬的证明?还是数据没有卡掉?

#include <bits/stdc++.h>
using namespace std;
/* 本来想写一个初级想法 超时一下再改的。
结果初级想法wa了一天。。
要类似尺取一样,
这道题有以下方向我没考虑到。
那就是 ① 举办talkshow的时间是马上的,可以和其他时间重合
② 如果以i为开始的话,那么开始talkshow的时间最短可以是 node[i-1]+1。
③ 如果以i为开头计算,如果不可行,再继续从i+1计算的话,着tm肯定不可行。
这tm就和匹配字符串一样,复杂度几乎是 n2
.最好的方法就是双指针维护 前缀和(小名叫尺取)。
方法。当i为开头的时候,维护一个前缀和。当不可以的时候,减去 首部分的前缀和(在这道题中是替换cd为ab)
*/
typedef long long ll;
const int maxn=3e5;
struct{ll kin,cos;
}node[maxn];
int n;
ll a,b,c,d,lim,sta;
int main()
{   while(~scanf("%d%lld%lld%lld%lld%lld%lld",&n,&a,&b,&c,&d,&sta,&lim)){for(int i=0;i<n;i++){scanf("%lld%d",&node[i].cos,&node[i].kin);}ll mn=1e17;ll ans=sta;ll sum2=0;int now=0;bool flag=false;int kk;for(int i=0;i<n;i++){ll tt;if(i==0)tt=0;else tt=node[i-1].cos+1;//计算i活动第一个被影响时,茶话会开始的日期while(now<n&&(node[now].cos-tt)<lim){if(node[now].kin==0)sum2-=d;elsesum2+=c;mn=min(sum2,mn);now++;}if(mn+ans>=0){flag=true;kk=i;if(kk==0)printf("0\n");elseprintf("%lld\n",node[kk-1].cos+1);break;              }if(node[i].kin==1){mn-=c;sum2-=c;ans+=a;}else {mn+=d;sum2+=d;ans-=b;}if(ans<0){puts("-1");flag=true;break;}}if(!flag)printf("%lld\n",node[n-1].cos+1);}return 0;
}

Codeforces Round #444 (Div. 2)-贪心尺取-Ratings and Reality Shows相关推荐

  1. Codeforces Round #444 (Div. 2) C.Solution for Cube 模拟

    向题解低头,向大佬低头(.﹏.)orz--模拟也不能乱模啊--要好好分析题意,简化简化再简化orz敲黑板 六个面的魔方,能一步还原的情况一定是只有2个面是单色,其余四个面,每个面2种颜色,而且不会出现 ...

  2. Codeforces Round #736 (Div. 2) D. Integers Have Friends ST表gcd + 尺取

    传送门 文章目录 题意: 思路: 题意: 给你一个序列aaa,求一个最长的子序列[l,r][l,r][l,r]满足aimodm=ai+1modm=...=armodma_i\bmod m=a_{i+1 ...

  3. Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...

  4. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

  5. 贪心 Codeforces Round #236 (Div. 2) A. Nuts

    题目传送门 1 /* 2 贪心:每一次选取最多的线段,最大能放置nuts,直到放完为止,很贪婪! 3 题目读不懂多读几遍:) 4 */ 5 #include <cstdio> 6 #inc ...

  6. 贪心 Codeforces Round #191 (Div. 2) A. Flipping Game

    题目传送门 1 /* 2 贪心:暴力贪心水水 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cs ...

  7. Codeforces Round #433(Div. 2) D. Jury Meeting(贪心)

    题目链接:Codeforces Round #433(Div. 2) D. Jury Meeting 题意: 有n个城市,每个城市有一个人,现在要让这些人来0号城市在一起k天,然后回去. 现在有m个日 ...

  8. Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)

    题目大意 有 n(1≤n≤3*105) 匹马,每条马都有几个敌人(不超过 3 个),现在要求把这些马分成两部分(允许一部分中没有一条马),使得对于每条马,和它在同一部分中的敌人的数量不超过1个 给出了 ...

  9. 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation

    题目传送门 1 /* 2 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 3 */ 4 /**************************************** ...

  10. Codeforces Round #579 (Div. 3) F2. Complete the Projects (hard version) dp + 贪心

    传送门 文章目录 题意: 思路: 题意: 思路: 排序方式跟easyeasyeasy版本的一样,但是hardhardhard版本是输出最多能选多少,所以我们对b<0b<0b<0的情况 ...

最新文章

  1. 虚拟化服务器端口用万兆,万兆以太网部署需要注意的方面有哪些
  2. boost::coroutine2模块实现分段的stack的测试程序
  3. 记某CMS漏洞getshell
  4. 开源日志库Logger的使用秘籍
  5. Fast RCNN总结
  6. ClickHouse:A股分钟数据的查询速度的测试[下]
  7. ScrollRect裁剪ParticleSystem粒子
  8. PaaS平台OpenShift企业部署的“脑图”
  9. 百度文档吓载券免财富值自助吓载方法
  10. 天线方向图的基本概念
  11. Java:(游戏:豆机)
  12. UNet 、3D-UNet 、VNet 区别
  13. 利用NCBIdatasets批量下载大规模生信数据集
  14. 关于重装vscode打不开的三种解决方法,亲测有用
  15. Win10家庭中文版开机后弹窗无法登录到你的账户点注销没用(解决过程记录)
  16. 中国化肥行业运行形势与投资策略研究报告2022版
  17. Ag-Grid React入门
  18. 项管行知05--可交付成果
  19. linux iis安装教程,易企秀源码在linux、win主机下的安装教程和详细步骤(含伪静态设置)...
  20. 通过C#生成支付宝收款码 三(支付宝官方SDK配合沙箱调试扫条码支付)

热门文章

  1. java work stealing_工作窃取(work-stealing)算法
  2. Unity发布抖音小游戏:申请注册(包括主体认证和基础信息完善)
  3. System.BadImageFormatException:试图加载格式不正确的程序。(异常来自 HRESULT:0x8007000B)
  4. python操作excel表格【自定义表格样式基础】
  5. java中md5加密_JAVA中使用MD5加密实现密码加密
  6. tf.app.flags
  7. DIY一个SM2262ENG 2TB Nvme固态硬盘,慧荣SM2262EN主控
  8. HDU 1224(动态规划)
  9. Mathematica图片裁切
  10. Android APP OpenGL ES应用(01)GLSurfaceView 2D/3D绘图基础