Codeforces Round 444 div2 D Ratings and Reality Shows (双指针)
题解 : 这个题目其实就让让我们不断动态维护一个区间的区间最小值,看这个最小值是否小于 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 (双指针)相关推荐
- codeforces Round#429 (Div2)
2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...
- Codeforces Round#310 div2
C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
- Codeforces Round 361 div2
雪崩,全错掉了GG.前两道题相对之前的难度大一点啊,不过A题有个循环应该是从0开始而不是1开始这样的低级错误不应该犯.B题差不多是一个BFS,但是我当时始终绕着最短路径写来写去,一直各种TLE与WA. ...
- Codeforces Round #360(div2)
考完试的晚上,打了场codeforces,主要感觉由于睡眠不够,最后差了点劲啊,C题基本上都过了,但忙中出错最后把数组调小易于debug后再提交又忘记改回来了,看到Runtime Error自己竟没反 ...
- codeforces round 416 div2补题
第一题,水题 A. Vladik and Courtes #include<bits/stdc++.h> using namespace std; int main() {long lon ...
- 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 ...
- codeforces round #576 div2 D Welfare State(线段树)[单点修改+区间修改]
题意:有一些数字,以及一些操作.操作一是单点修改,输入1 b c,将位置b改成c,操作二是输入2 a,将不大于a的数全部改成a.求更改完毕后的数. tag的运用:tag是对被覆盖区间上加一个标记,那么 ...
- 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[ ...
- Codeforces Round #267 Div2 C George and Job --DP
题意:把长度为n的序列分成k个m长的连续小序列,这些连续小序列的和最大是多少. 解法:显然DP. 定义: dp[i][j] 为前 i 个元素分成j个m端,且 i 是第j个的末尾的最大和. 那么有: d ...
最新文章
- 你真的以为了解java.io吗 呕心沥血 绝对干货 别把我移出首页了
- 再看nf_conntrack: table full问题
- ubuntu 18.10增加和设置Swap交换分区
- threejs 热力图做成材质_脉冲滤筒除尘器滤芯的材质
- wechaty-微信聊天机器人-调研分析
- SLAM综述阅读笔记一:Past, Present, and Future of Simultaneous Localization And Mapping(2016)
- linuxGame:文明5汉化
- CentOS 无法连接网络解决办法
- 划分,全概率公式,贝叶斯公式证明
- FlashDB移植与应用
- 用c语言写心理测试,单招心理测试模拟题附答案(机试可用)
- java树结构stream工具类
- 【渝粤题库】陕西师范大学201771 中国古代文学(一) 作业
- 【haut 1262: 魔法宝石】+ 暴力
- J - 最强王者 POJ - 1753 Flip Game 搜索+状态压缩
- js 设置读秒验证码
- 手机第三方支付产品安全性
- 快速阅读——《认知篇》
- iphone编辑过的录音怎么还原_iphone如何恢复误删录音?
- 激情世界杯,盛夏大放价,CDR 618返场继续嗨