二分搜索
!
fffefw
这个作者很懒,什么都没留下…
展开
-
Codeforces 801C Voltage Keepsake
1.因为充电器在任意时刻给任意机器充电,并且交换充电对象并不消耗时间,所以可以从整体来看,如果充电器每秒可以冲的电量p大于等于全部机器的每秒消耗的电量的话,相当于可以利用充电器做到,让每台机器的电量始终大于等于它的原电量,也就是每台机器电量只可能增不可能减,所以可以无限使用下去。2.若不能无限的使用下去的话,因为使用的时间越长,出现某个机器电量为0的概率就越大可以理解为1111000000(1...原创 2018-08-18 14:48:17 · 107 阅读 · 0 评论 -
Text Editor Gym - 101466E (hash+二分)
题目意思是给你一个主串和一个子串,然后要求你在子串的所有前缀串里找到一个最长的串,满足在主串里至少出现了ti次。做法就是求出a串和b串的hash值,然后二分b串的长度就行了。#include<bits/stdc++.h>//二分+hashusing namespace std;#define ull unsigned long longconst int maxn=...原创 2018-08-19 17:25:40 · 214 阅读 · 0 评论 -
Present CodeForces - 460C (二分+线段树)
二分最矮的花的高度即可。check函数就是判断一下花是否可以达到mid高度及以上,不能达到就给它浇水,这里还要判断浇水次数有没有超过m,超过了则mid不满足条件。然后因为每浇水一次区间值加+1,然后又需要单点查询,所以我这里用了线段树维护区间。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+5;...原创 2018-08-23 20:41:03 · 215 阅读 · 0 评论 -
Fountains CodeForces - 799C
取得2个物品有3种情况:1.选一个c类型,一个d类型 2.选2个c类型 3.选2个d类型,分类讨论一下 写了这题才发现二分还能这样用。#include<bits/stdc++.h>using namespace std;#define pii pair<int,int>vector<pii>a,b;int pre1[100000+10...原创 2018-08-21 23:26:56 · 134 阅读 · 0 评论 -
The Meeting Place Cannot Be Changed CodeForces - 780B (二分搜索)
先对人的坐标升序排个序,二分时间即可,check函数的话就是判断一下mid时间内能否到,先假设全部人往右走mid时间,求出往右走到达的位置的最小值tmp1,然后取最右的人的坐标和tmp1比较,1.若该坐标大于tmp1,说明该人及其右边的人往右边走是到不了tmp1的。2.若该坐标小于等于tmp1,说明了全部人都可以在mid时刻内到达tmp1位置,直接就return true。对于第一种情况还要继...原创 2018-08-25 23:58:20 · 189 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) D. Boxes Packing
比赛的时候这题的题意一直没看懂,后面才明白意思就是有n个物品,然后要求最多可以挑选出多少物品,挑选过程是从第一给物品开始往右边挑选,对于每一个物品,如果目前的盒子剩余空间是>=该物品的体积的就直接放进盒子,继续挑选下一个物品,若目前的盒子剩余空间是<该物品的体积的,那就要另外开一个盒子来放物品了,若目前已经没有可用的盒子了,说明这次选取是非法的,那么之前选取的所有物品都不可以得...原创 2018-10-13 17:30:34 · 196 阅读 · 0 评论 -
Codeforces Round #377 (Div. 2)-D. Exams
传送门因为天数越大通过所有考试的可能性就越大,具有单调性所以可以二分天数,然后check的话,就要用到贪心的思想从后往前扫(因为越晚考试复习的时间就越多),设变量统计1到mid通过的考试的数量,还有通过这些考试所需要的复习时间。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;int vis...原创 2018-10-19 01:38:07 · 128 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot
先提前处理求出u,d,l,r的前缀数组,然后 二分修改区间的长度即可#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;int n,x7,y7,x2,y2,preu[maxn],pred[maxn],prel[maxn],prer[maxn];bool check(int len){ ...原创 2018-11-22 23:35:05 · 189 阅读 · 0 评论 -
Mirrored String II Gym - 101350I (二分+hash)
由于不会马拉车求最长回文子串,于是就只能用二分了。然后由于长度为奇数的回文子串不存在,不代表更长的长度为偶数的回文子串不存在。但是长度为奇(偶)数的回文子串不存在,更长的长度为奇(偶)数的回文子串一定不存在,长度为奇(偶)数的回文子串存在,更短的长度为奇(偶)数的回文子串一定存在,所以可以想到对奇偶长度分开二分。比如说huuf,长度为3的回文子串是不存在的,但是长度为4的回文子串是存在的,这就不具...原创 2019-05-21 22:52:40 · 144 阅读 · 1 评论