UVALive 6656 Watching the Kangaroo --二分】的更多相关文章

题意:给你一些区间,再查询一些点,问这些点与所有区间形成的最小距离的最大值.最小距离定义为:如果点在区间内,那么最小距离为0,否则为min(pos-L[i],R[i]-pos). 解法:当然要排个序,仔细想想会发现我们要找的区间的位置满足二分性质,即如果此时pos-L[mid] >= R[mid]-pos,那么我们要找的区间肯定是mid或大于mid,否则,我们要找的区间一定是mid即mid以下.二分找到即可.预处理时要把嵌套在别的区间里的区间忽略掉,因为外面那个区间一定比他更优. 代码: #in…
6656 Watching the KangarooDay by day number of Kangaroos is decreasing just liketiger, whale or lions. So I decided to make them a sanctuarywhere they will live peacefully. I do not let visitors gonear them. So I planted some display screen outside t…
题意:n条线段(n <= 100000) (L<=R <= 1e9) ,m组询问(m <= 100000) 每次询问一个点的覆盖范围的最大值.一个点x对于一条包括其的线段,覆盖范围为min(x-L,R-x) 思路:考虑将线段一份为二,对于左边的那部分,以右端点排序,然后 二分找到右端点恰好满足的那个点为id,那么接下来要做的就是就是在[id,n]这个范围内找到L最小的那个点,能够通过求前缀最大来得到.那么左边最大距离为  seg[id].L-preLMax[id],右边最大的求法也…
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5922 题意: 给出 $N$ 个冰淇淋球,第 $i$ 个冰淇淋球大小为 $B_i$,现在已知冰淇淋球堆叠起来可组成一个冰淇淋. 对于上下相邻的两个冰淇淋球,只有上面的那个大小不…
题意:为每个小伙伴切糕,要求每个小盆友(包括你自己)分得的pie一样大,但是每个人只能分得一份pie,不能拿两份凑一起的. 做法:二分查找切糕的大小,然后看看分出来的个数有没有大于小盆友们的个数,它又没说每个pie都要分完,分不完的留给工作人员吃嘛. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * Blog: http://blog.csdn.net/hcbbt * File: live3652.cpp * Create Date: 2013-…
ZSoft Corp. is a software company in GaoKe Hall. And the workers in the hall are very hard-working. But the elevator in that hall always drives them crazy. Why? Because there is only one elevator in GaoKe Hall, while there are hundreds of companies i…
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3914 对L研究可以发现 相当于黑-横白,黑-纵白,每个黑白都要被匹配到,其中黑的横纵各两次, 很自然的想到拆点,黑点拆成专门和横白连接的,专门和纵白连接的, 如果2*黑==白数,运行一次二分匹配算法,匹配数==白数则为可行,剩下的都不可行 #include <cstdi…
题目链接 题意:有n架飞机,每架飞机有两个着陆时间点可以选,要求任意两架飞机的着陆时间之差不超过k,求k的最大值. 解法:由于每架飞机都有两个选择,并且必选且只能选其中一个,时间冲突也是发生在两架飞机之间的,因此二分答案,对冲突的时间建边处理,然后跑2SAT即可. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; +; struct E { int v,nxt; } e…
题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5449 题意 给出一个n 然后有n行 每行给出两个数 这两个数之间可以用三种操作 分别是 + - * 如果这n对数通过操作后 得到的结果都是不同的,那么这个方案就是符合条件的 输出任意一种可行方案 如果存在相同结果,那么就是不可行的 思路 可以把N对数看成一个点,把一…
题意:你有b元钱,有n个配件,每个配件有各类,品质因子,价格,要每种买一个,让最差的品质因子尽量大. 析:很简单的一个二分题,二分品质因子即可,每次计算要花的钱的多少,每次尽量买便宜且大的品质因子. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include &…