Codefroces 750C:New Year and Rating(思维)
http://codeforces.com/contest/750/problem/C
题意:有n场比赛,每场比赛有一个c,代表比赛结束后分数的增长情况,有一个d,代表这场比赛在div1或者div2打。div1 >= 1900,div2 < 1900。求打完这n场比赛后可能得到的最大分数。如果无限大就输出“Inifinity”,如果有矛盾就输出“Impossible”。
思路:官方题解。
For every contest we know that the current rating is x increased by some prefix sum of c_i (changes of rating). If Limak is in the division 1, we have inequality x+prefSum >= 1900 so we have x >= 1900-prefSum. If Limak is in the division 2, we have inequality x_prefSum <= 1899 so it is x <= 1899-prefSum. From this set of inequalities, your task is to find the biggest x satisfying all of them.
设立一个可行的上下限,对每场比赛,更新上下限。设一个初始分数 x,-INF <= X <= INF,处理一个c[i]的前缀和s,如果在div1打的话,只有 x + s >= 1900,才可在div1打,那么分数的下限就是max(low,1900 - s),如果在div2打,只有 x + s <= 1899,才可以才div2打,那么分数的上限是min(high,1899 - s)。最后处理答案,如果一直在div1打,那么分数无穷大,如果 low 和 high 冲突,那么是不可能。否则就是初始的分数上限 + 前缀和s。
昨晚大概也想的是设立一个上下限,但是想的好乱,搞不定。还是要多训练自己的思维能力。
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <queue>
#include <vector>
#include <map>
#include <set>
using namespace std;
#define INF 0x3f3f3f3f
#define N 200010
typedef long long LL;
int n, c[N], d[N]; int main() {
cin >> n;
int flag = ;
for(int i = ; i <= n; i++)
scanf("%d%d", &c[i], &d[i]);
int left = -INF, right = INF;
int s = ;
for(int i = ; i <= n; i++) {
if(d[i] == ) left = max(left, - s);
if(d[i] == ) right = min(right, - s);
s += c[i];
}
if(right < left) puts("Impossible");
else if(right == INF) puts("Infinity");
else printf("%d\n", right + s);
return ;
}
Codefroces 750C:New Year and Rating(思维)的更多相关文章
- 【codeforces 750C】New Year and Rating(做法2)
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 750C】New Year and Rating
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- C. New Year and Rating 差分方程 思维
题意: 一个CF玩家打CF 给出其比赛列表和上分(掉分)情况 ,但是没给初始分 问最后最高分是多少 (情况不存在,或者可能无穷大) 思路: 设初始分为x 那么之前的回合的分数前缀和为sum 如 ...
- Codefroces 628B New Skateboard(数位+思维)
题目链接:http://codeforces.com/contest/628/problem/B 题目大意:给你一段数字串s(1?≤?|s|?≤?3·10^5),求该字符串有多少子串是4的倍数.解题思 ...
- Codeforces Global Round 12 D. Rating Compression (思维,双指针)
题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间 ...
- 从Elo Rating System谈到层次分析法
1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水 ...
- codefroces中的病毒,这题有很深的trick,你能解开吗?
大家好,欢迎阅读周末codeforces专题. 我们今天选择的问题是contest 1419的C题,目前有接近8000的人通过了本题.今天这题的难度不大,但是真的很考验思维,一不小心就会踩中陷阱,我个 ...
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html 目录 马桶排序(令人 ...
- Photoshop、Illustrator思维导图笔记
半年前学习Photoshop时记得的思维导图笔记,可能不是很全,常用的基本都记下了.
随机推荐
- CentOS 6.6 安装 Node.js
node.js 的 GitHub 地址是:https://github.com/nodejs/node 官网源码包下载地址时:https://nodejs.org/en/download/ ① 获取并 ...
- 3D滚动下拉菜单-简直不要太任性
预览 先看看最终效果 简介 由来 最初看到这个是在14年5月,猛戳这里:妙味官网,觉得非常炫.想要做出来,所以就开始学习web. 那时候是做c/s的,也因为这个走上了b/s之路,(゚Д゚≡゚Д゚) 现 ...
- BZOJ 3365 Distance Statistics 点分治
这道题是一道点分治的题目,难度不大,可以拿来练手. 关键是对于找出来的重心的删除操作需要删掉这条边,这很重要. 还有每次找重心的时候,不但要考虑他的子节点的siz,还要考虑父节点的siz. 然后就A了 ...
- java常见面试题及答案 11-20(JVM篇)
11.JVM内存分哪几个区,每个区的作用是什么? Java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区 ...
- Sublime Text的心得经验。 全面
Sublime Text的心得经验.jikeytang/sublime-text · GitHub
- java、Android SDK、adb环境变量配置,以及JDK1.7换JDK1.8
最近因项目需要使用将JDK1.7换成JDK1.8,故重新清晰地记录各种环境变量的配置: 这里更改的均是系统变量,不是用户变量 java环境变量配置: 变量名 变量值JAVA ...
- TweenMax学习一
TweenMaxjs是一个性能很高的js动画框架,它与css3动画具有时间轴的概念.你可以很方便的把动画添加到一个时间轴队列里面去按照你需要的顺序去执行. 官网地址: http://greensock ...
- 总结:客户端与服务器端使用正则增加URL参数的方法
先说服务器端的: C#版本 #region URL参数操作 /// <summary> /// URL参数操作 /// </summary> public class UrlP ...
- 使用Python写Windows Service服务程序
1.背景 如果你想用Python开发Windows程序,并让其开机启动等,就必须写成windows的服务程序Windows Service,用Python来做这个事情必须要借助第三方模块pywin32 ...
- [SharePoint 2013] Subscribe report within SharePoint mode
param([string]$path, [string]$fileName, [string]$storage) $description = "Save in $storage as $ ...