题解 : 这个题目其实就让让我们不断动态维护一个区间的区间最小值,看这个最小值是否小于 0;对于这种题目我们可以使用双指针的方法来进行求解 第一个指针指向开始的位置,第二个指针指向结束的位置。在指针不断的移动过程中我们需要维护一个是当前的 rating 一个是这个区间改变的 rating 一个是改变 rating 的最小值,这三个量都可以在更新的过程中维护,时间复杂度就是 o (n)。 具体看代码 很短很好懂

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;const int maxn = 3e5 + 10;int n,a,b,c,d,st,len;int t[maxn],q[maxn];int main () {ios_base :: sync_with_stdio(false);cin >> n >> a >> b >> c >> d >> st >> len;for (int i = 1;i <= n; ++ i) {cin >> t[i] >> q[i];}t[0] = 0;int MIN = 0,rating = st,change = 0;int now = 1;for (int i = 1;i <= n; ++ i) {while (now <= n && t[now] - t[i] < len) {if (q[now] == 1) change += c;else change -= d;MIN = min (MIN,change);now ++;}if (MIN + rating >= 0) {cout << t[i - 1] + 1 << endl;return 0;}rating += (q[i] ? a : -b);change -= (q[i] ? c : -d);MIN -= (q[i] ? c : -d);if (rating < 0) {cout << -1 << endl;return 0;}}cout << t[n] + 1 << endl;return 0;
}

Codeforces Round 444 div2 D Ratings and Reality Shows (双指针)相关推荐

  1. codeforces Round#429 (Div2)

    2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...

  2. Codeforces Round#310 div2

    C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...

  3. Codeforces Round #359 div2

    Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...

  4. Codeforces Round 361 div2

    雪崩,全错掉了GG.前两道题相对之前的难度大一点啊,不过A题有个循环应该是从0开始而不是1开始这样的低级错误不应该犯.B题差不多是一个BFS,但是我当时始终绕着最短路径写来写去,一直各种TLE与WA. ...

  5. Codeforces Round #360(div2)

    考完试的晚上,打了场codeforces,主要感觉由于睡眠不够,最后差了点劲啊,C题基本上都过了,但忙中出错最后把数组调小易于debug后再提交又忘记改回来了,看到Runtime Error自己竟没反 ...

  6. codeforces round 416 div2补题

    第一题,水题 A. Vladik and Courtes #include<bits/stdc++.h> using namespace std; int main() {long lon ...

  7. codeforces round 421 div2 补题 CF 820 A-E

    A Mister B and Book Reading  O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...

  8. codeforces round #576 div2 D Welfare State(线段树)[单点修改+区间修改]

    题意:有一些数字,以及一些操作.操作一是单点修改,输入1 b c,将位置b改成c,操作二是输入2 a,将不大于a的数全部改成a.求更改完毕后的数. tag的运用:tag是对被覆盖区间上加一个标记,那么 ...

  9. codeforces round 418 div2 补题 CF 814 A-E

    A An abandoned sentiment from past 水题 #include<bits/stdc++.h>using namespace std;int a[300],b[ ...

  10. Codeforces Round #267 Div2 C George and Job --DP

    题意:把长度为n的序列分成k个m长的连续小序列,这些连续小序列的和最大是多少. 解法:显然DP. 定义: dp[i][j] 为前 i 个元素分成j个m端,且 i 是第j个的末尾的最大和. 那么有: d ...

最新文章

  1. 你真的以为了解java.io吗 呕心沥血 绝对干货 别把我移出首页了
  2. 再看nf_conntrack: table full问题
  3. ubuntu 18.10增加和设置Swap交换分区
  4. threejs 热力图做成材质_脉冲滤筒除尘器滤芯的材质
  5. wechaty-微信聊天机器人-调研分析
  6. SLAM综述阅读笔记一:Past, Present, and Future of Simultaneous Localization And Mapping(2016)
  7. linuxGame:文明5汉化
  8. CentOS 无法连接网络解决办法
  9. 划分,全概率公式,贝叶斯公式证明
  10. FlashDB移植与应用
  11. 用c语言写心理测试,单招心理测试模拟题附答案(机试可用)
  12. java树结构stream工具类
  13. 【渝粤题库】陕西师范大学201771 中国古代文学(一) 作业
  14. 【haut 1262: 魔法宝石】+ 暴力
  15. J - 最强王者 POJ - 1753 Flip Game 搜索+状态压缩
  16. js 设置读秒验证码
  17. 手机第三方支付产品安全性
  18. 快速阅读——《认知篇》
  19. iphone编辑过的录音怎么还原_iphone如何恢复误删录音?
  20. 激情世界杯,盛夏大放价,CDR 618返场继续嗨

热门文章

  1. 关于云和网的未来,这位大佬讲了真话……
  2. 随机数—Random
  3. VS加载DLL报---找不到指定的模块(126)
  4. 【C语言】size与strlen的区别解析
  5. 前端性能优化-图片优化
  6. TensorFlow中的小知识:tf.flags.DEFINE_xxx()
  7. Linux学习笔记Day01-03 Xshell,Xfpt下载安装,使用
  8. python处理页眉_python批量替换页眉页脚实例代码
  9. RabbitMQ之延迟队列
  10. Xenu检测网站死链