二分
文章平均质量分 67
Lazines_by
好吧,我要工作了
展开
-
poj2456(二分)
题意:最大化最小值,将m个物体放入n个位置中,使得每个物体的相差的最小值最大;思路:二分枚举答案,看是否符合Code:#include#include#includeusing namespace std;const int maxn = 1e5 + 10;int a[maxn];int n,m;bool is_(int d){ int temp = a[1]原创 2017-07-13 09:03:03 · 288 阅读 · 0 评论 -
hdu 5884二分+优先队列
PS:当初比赛的时候总是超时,以后优先队列放在函数外边吧,能节省一些时间。然后怎么还是不能理解(n - 1)% (k - 1)== 0最小,然后当成一个结论来记吧,k叉哈夫曼树。#includeusing namespace std;typedef long long ll;typedef pair P;typedef set::iterator ITER;#define f原创 2017-08-09 20:15:51 · 222 阅读 · 0 评论 -
Codeforces785C (二分)
题意:给出一个n,m,最初一个容器里面的数量是n,然后每天取1,2,3,4……数量的物品,每次取完之后就向里面加入m个物品,问最终取完了容器里面的时间。思路:我们知道,当n 当n > m的时候,我们可以把取的东西分为两个部分,第一部分是小于m的天数,因为这个时候取得物品数量小于m,所以容器里面的数量总是保持在n. 在天数大于m的时候,我们发原创 2017-08-07 17:18:12 · 321 阅读 · 0 评论 -
玲珑杯round#19B 1149 Buildings
题意:给出一个数列和k,求出满足[L,R]区间中最大的数减去最小的数思路:注意到固定l之后,随着r的右移,[l,r]的最大值越来越大,[l,r]的最小值越来越小,故max(hl,…,hr)−min(hl,…,hr)是单调递增的。二分得到r的最大值,答案加上r−l+1。用ST表维护O(1)查询区间最值。时间复杂度O(nlogn)。#includeusing原创 2017-07-31 11:30:36 · 214 阅读 · 0 评论 -
hihocoder1543(思维+ 二分)
题意:给出一个10^9的数,然后判断这个数最多能够由多少个连续的数组成。思路:先假设能1 ~ n组成这个数,打个表,二分一下,然后得到这个数最多有多少个数组成,最多为10^5;然后以这个最多的数开始进行暴力枚举,枚举这个数由多少个连续的数组成,假设这些连续的数的起点为x,那么的话满足(x + (x + i - 1))/2 * i == n;得到如果刚好分完的话x = (n * 2 /原创 2017-07-31 10:41:09 · 178 阅读 · 0 评论 -
hdu5936二分
题意:f(y,K)=∑z in every digits of yzKx=f(y,K)−y,给出x,k,求出满足这个等式的y有多少个。思路:易得y最大为10^10,而y 可以分成两部分,y = y1 * 100000 + y2,y1,y2 等式等效为: x = f(y1,k) - y1 * 100000 + f(y2,k) - y原创 2017-07-21 17:28:52 · 258 阅读 · 0 评论 -
poj2785(二分折半枚举)
题意:求在四个大小为4000的数列中分别选出一个数相加等于0的情况数。思路:如果是直接枚举的话,O(n^4),肯定不行。可以先预处理出A和B相加情况,排好序;然后枚举出C和 D 相加的情况,然后将二分查找能和CD相加等于0的情况。复杂度:O(n ^ 2 * log(n ^ 2));Code:#include#include#include#in原创 2017-07-14 10:08:42 · 281 阅读 · 0 评论 -
lower_bound && upper_bound
upper_bound(i) 返回的是键值为i的元素可以插入的最后一个位置(上界) lowe_bound(i) 返回的是键值为i的元素可以插入的位置的第一个位置(下界)。★升序排列的容器:terator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bound( co原创 2017-07-14 09:50:16 · 171 阅读 · 0 评论 -
nyoj914 (二分最大化)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=914题意:Yougth现在有n个物品的重量和价值分别是Wi和Vi,你能帮他从中选出k个物品使得单位重量的价值最大吗?思路:很可能大家一拿到这个题目就是想到要贪心,算出每一个物品的单位重量价值。然而这个是segma(vi)/segma(wi),这个想法并不正确原创 2017-07-13 09:38:43 · 262 阅读 · 0 评论 -
uva12535求圆上所有的点能形成的锐角三角形的数量
题意:给出圆上每个点的角度,然后询问这些点能形成多少个锐角三角形。思路:反向思考,总的三角形的个数C(n,3) -- 直角三角形 - 钝角三角形 = 锐角三角形的个数对于直角三角形和钝角三角形来求的话,就是以直角为中介,如果产生的是直角的话,那么枚举的这个点对应的那个点的连线经过圆心,也就是每次二分找到一个于180最接近的点,那么这两个点直接的所有的点都能抽出两个与枚举的那原创 2017-11-30 21:07:14 · 460 阅读 · 0 评论