CodeForces-650B Image Preview 二分+模拟】的更多相关文章

题目链接 B. Image Preview time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasya's telephone contains n photos. Photo number 1 is currently opened on the phone. It is allowed to move left and ri…
CodeForces-650B Image Preview 题意 手机里有n张图片,打开相机出现的是第一张,第一张右滑得到第n张,同理第n张左滑得到第1张,翻页耗费a秒,看照片耗费1s,但是照片有横屏的竖屏的,如果是横屏的需要翻转一下,翻转需要的时间为bs,如果某张照片是已经看过的,可以不看,否则必须看完才能左滑或者右滑(注意),现在你有t秒时间,最多可以看多少张照片. 思路 就是一个模拟题,两种看法,先左滑,然后二分判断右滑可以再看多少张,先右滑再二分左滑可以再看多少张. 代码写得有点恶心.…
题目大概说手机有n张照片.通过左滑或者右滑循环切换照片,滑动需要花费a时间:看一张照片要1时间,而看过的可以马上跳过不用花时间,没看过的不能跳过:有些照片要横着看,要花b时间旋转方向.那么问T时间下最多可以看多少张相片. 先确定左滑最多能看到哪张,然后用另一个指针从第一张照片往右移动,这代表先右滑然后左滑的方式看照片,而每次向右的指针移动计算其时间,不合法的话就通过向左的指针向右移修正时间: 而先左滑然后右滑的方式同理. 模拟题,好难写..不过写好后提交居然就1A了.. #include<cst…
time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasya's telephone contains n photos. Photo number 1 is currently opened on the phone. It is allowed to move left and right to the adjacent ph…
CodeForces.158A Next Round (水模拟) 题意分析 校赛水题的英文版,坑点就是要求为正数. 代码总览 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <sstream> #include <set> #include <map> #include <queue>…
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r.每次操作的代价为改变数的个数.问:要让操作后序列里不同数的个数\(k\)满足$n \lceil \log _2 k\rceil \leq 8I $,操作的最小代价 分析 首先把a离散化,这样[l,r]都在\(10^5\)的级别.枚举l,发现r显然有单调性.操作后不同数的个数随r的增大而减小(考虑极端情况l=…
A. Anton and Danik time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Anton likes to play chess, and so does his friend Danik. Once they have played n games in a row. For each game it's known…
要点 二分显然,关键在于怎么判断 题解方法:开k个队列代表每个时间有哪些电脑会挂掉,这部分O(n)预处理一下,之后扫一遍时间,每个时间点贪心选取最靠前的会挂的电脑未雨绸缪给它充电,然后看看充电以后要不要换队列,这样就把n * k的变成了n + k的 const int maxn = 2e5 + 5; int n; ll k; ll a[maxn], b[maxn], cur[maxn]; queue<int> Q[maxn]; bool ok(ll mid) { rep(i, 0, k) wh…
题意: 若干张照片,从头开始可以向左右两边读,已经读过的不需要再读,有的照片需要翻转,给定读.滑动和翻转消耗的时间,求在给定时间内最多能读多少页? 分析: 首先明确,只横跨一次,即先一直读一边然后再一直读另一边,这样消耗的滑动时间最少.是否能在给定时间内读完页数很好判断,所以用二分+枚举,先枚举左边的所有可能情况,再二分右边求出最大页数, 再枚举右边,求出左边.取两边的最大值即可. 代码: #include<iostream> #include<cstdio> #include&l…
题意: 是有n个星球,1代表地球,然后输入一个m表示火箭的重量,然后输入了两组n个数,第一组表示在每个星球起飞时消耗一吨燃料的质量数,a[i]就表示每a[i]吨就要消耗1吨燃料,第二组就表示在每个星球降落时消耗一吨燃料的质量数,然后问当火箭从1飞到2到3....到n星球后又返回1星球最少需要加多少燃料. 思路: 二分答案,注意double二分的写法,以及如何控制出口 代码: #include<iostream> #include<iomanip> #include<cstdi…