二分
Joyyiwei
这个作者很懒,什么都没留下…
展开
-
uva 10341 Solve It
题意:double的二分,跟普通的二分是有差别的,存在着精度的误差,所以无法确定当f(mid) = 0的时候退出,所以会有这个while (right - left > 1e-9)#include #include #include #include using namespace std;double p,q,r,s,t,u;int main(){ while (s原创 2013-08-27 09:43:24 · 742 阅读 · 0 评论 -
UVALive - 4254 Processor
题意:有n个任务,每个任务有三个参数,r,d,w,表示该任务必须在[r,d]之间执行,工作量是w,处理器执行速度可以变化,当执行速度是s的时候,一个工作量是w的任务需要需要的执行时间是w/s个工作单位,另外,任务不一定要连续的执行,可以分成若干块,求出处理器执行过程中最大速度的最小值,速度必须是整数思路:最大值的最小值用二分处理,对于一个速度来说,我们可以考虑它在单位时间能做的事,定义原创 2014-01-02 20:45:30 · 1849 阅读 · 2 评论 -
UVALive - 4725 Airport
题意:有一个机场只有一条起飞跑道,有两个入口E,W,每时刻只能有一架飞机起飞,而每时刻也都会有一些飞机进入入口E,W,在任意时刻,E通道和W通道里的飞机分别从0开始编号,你的任务是在每个时刻选择一架飞机起飞,使得任意时刻的飞机的最大编号最小思路:又是最大值的最小值,二分处理,问题是如何判断是否满足条件,贪心模拟显然是麻烦的,先想一下不满足的情况是什么吧,如果我们需要起飞的飞机使得最原创 2014-01-03 16:48:35 · 1593 阅读 · 2 评论 -
HDU - 4190 Distributing Ballot Boxes
题意:有n个城市和m个信箱(信箱可以无限大),再给出n个城市的人口,每个城市最起码要有一个信箱,该城市的人只能把信投到自己城市的信箱里,求最小的信箱大小思路:二分,我们将信箱的大小作为我们二分的值#include #include #include #include using namespace std;const int MAXN = 500010;int arr[MAX原创 2014-03-03 10:54:01 · 1062 阅读 · 0 评论 -
UVALive - 3716 DNA Regions
题意:给出两个字符串,求出一个尽量长的序列使得有不超过p%的x满足Ax!=Bx思路:首先明确条件是(i-j)*p>=(sum[i]-sum[j])*100 => i*p-sum[i]*100 >= j*p-sum[j]*100,sum[i]表示前i个的不相等的个数,然后就是构造一个单调递减队列,储存结果,然后二分找出最小的j#include #include #include原创 2014-01-24 17:24:07 · 1470 阅读 · 0 评论 -
UVA - 11090 Going in Cycle!! (Bellman-Ford算法判负环)
DescriptionI IU P C2 0 06Problem G: Going in Cycle!!Input: standard input Output: standard output You are given a weighted directed gra原创 2014-07-21 10:35:20 · 1013 阅读 · 0 评论 -
UVA - 11478 Halum (最短路应用+二分)
Description Problem H HalumTime Limit : 3 seconds You are given a directed graph G(V,E) with a set of vertices and edges. Each edge (i,j) that connects some原创 2014-07-21 16:31:01 · 968 阅读 · 0 评论 -
uva 1555 Garland
题意:有n个灯笼,第一个的高度是A,最后一个是B,灯笼的关系给出,并要求每个灯笼的高度是非负数的,求最低的B思路:推出公式:H[i]=2*H[i-1]+2-H[i-2],然后枚举H[2],在知道H[1]的情况下就能求出所有的高度,然后判断是否都是非负数#include #include #include #include using namespace std;const int原创 2014-07-05 19:42:51 · 974 阅读 · 0 评论 -
UVA - 11908 Skyscraper
DescriptionJSkyscraperThe Build n' Profit construction company is about to build its tallest building. It will be huge, the tallest building in the world by a wide marg原创 2014-08-11 13:55:20 · 1631 阅读 · 0 评论 -
UVA - 11920 0 s, 1 s and ? Marks
Description 0 s, 1 s and ? Marks Given a string consisting of 0, 1 and ? only, change all the? to 0/1, so that the size of the largest group is minimized. A group is a subs原创 2014-08-11 11:45:06 · 900 阅读 · 0 评论 -
UVA - 10029 Edit Step Ladders (二分+hash)
DescriptionProblem C: Edit Step LaddersAn edit step is a transformation from one word x to another wordy such that x and y are words in the dictionary, and x can be transformed to y by原创 2014-08-30 15:14:52 · 1026 阅读 · 0 评论 -
Codeforces Round #256 (Div. 2) D. Multiplication Table
Bizon the Champion isn't just charming, he also is very smart.While some of us were learning the multiplication table, Bizon the Champion had fun in his own manner. Bizon the Champion painted an n原创 2014-10-23 08:03:43 · 1069 阅读 · 0 评论 -
UVA - 11627 Slalom
题意:在一场滑雪比赛中,你需要通过n个门,所有门有严格的按海拔递减,你有S双滑雪板,第j双的速度是sj,你的水平速度不能超过vh,如果起点和终点可以任意,输出可以顺利通过的最大速度思路:看到题目就想到了二分,但我们是在输入S双鞋的速度外面,便于求最大值,那么二分的条件是什么呢,题目简单的地方是给出了水平速度和下降速度,所以不用看到物理公式了,在任意两个门的下降时间的同时我们可以求出我们可能达到原创 2013-12-16 20:36:26 · 961 阅读 · 0 评论 -
FZU - 2138 久违的月赛之一 (二分)
Problem Description好久没举月赛了,这次lqw给大家出了5道题,因为hsy学长宣传的很到位,吸引了n个DDMM们来做,另一位kk学长说,全做对的要给金奖,做对4题要给银奖,做对3题要给铜奖。统计数据的时候,发现每题分别在n个人中有n1、n2、n3、n4、n5个人通过,lqw灵机一动,问kk:“你猜,这次至少会有多少个人获奖?”由于题目太简单了,每题的通过人数一定大于等于最原创 2013-12-02 16:01:21 · 789 阅读 · 0 评论 -
uva 10487 Closest Sums
题意:找出数组中和最接近所要求的数的和,先求出所有可能的和,然后本来我是先排序,然后从小到大去找的,直到出现拐点,然后看了学长的二分,就果断用二分了#include #include #include #include #include using namespace std;const int MAXN = 1010;int n,m,len;int num_n[MAXN],原创 2013-08-27 20:19:16 · 590 阅读 · 0 评论 -
UVALive - 3971 Assemble
题目大意:有若干个零件, 每个零件给出的信息有种类, 名称, 价格, 质量, 现在给出一个金额, 要求在这个金额范围内, 将每个种类零件都买一个, 并且尽量让这些零件中质量最小的越大, 输出质量最小的值。思路:看到质量的范围这么大,就二分查找吧,之后就采用贪心,每次将符合要求的且价格最小的加进去,排序后,找到大于等于当前的就可以了#include #include #include原创 2013-09-07 23:37:44 · 783 阅读 · 0 评论 -
UVALive - 3635 Pie
题意:求double型的二分,左值是0,右值是最理想的可能,也就是总和处理f+1#include #include #include #include using namespace std;const int MAXN = 10005;double PI = acos(-1);int n,f;double R[MAXN];double search(double l,dou原创 2013-09-08 00:24:18 · 726 阅读 · 0 评论 -
UVALive - 2949 Elevator Stopping Plan
题意:有一个电梯,有n个人要上不同的目标层数,每个人可以选择搭电梯或走路,走路上一层或下一层都耗费20s,楼梯上一层要用4s,每次停下来持续10s,最后一个目标层数的停靠时间不计。要求设计一个电梯停靠计划,使得最后一个人到达他的目标层数所用时间最小,输出这个最小时间。思路:首先用二分查找时间,然后贪心这个时间是否满足所有的人,且尽量往高的地方去#include #include #原创 2013-09-08 22:27:00 · 759 阅读 · 0 评论 -
CF k-Multiple Free Set
题意:看输出的意思是n和n*k是一类,求最多有几类,用了set,还有一种方法是二分,不然数据太大#include #include #include #include #include using namespace std;const int MAXN = 200005;long long arr[MAXN];int n,k;int main(){ whil原创 2013-10-17 22:08:08 · 893 阅读 · 0 评论 -
CodeForces - 251A Points on Line
题意:求出任意三个,其中这三个中最大的和最小的不超过d的组数,很巧的是这道题是从小到大输入的,其实对于一个数n,找到不大于n+d的最大的数,确定这两个之间的个数,然后以n作为第一个,然后在长度为l的任意找出2个,就是组合,二分求上界突然忘了,翻书就看到了这个函数upper_bound(),函数的返回值是小于等于n的最后一个元素的下一个,所以要-1#include #include #i原创 2013-10-17 23:43:13 · 1299 阅读 · 1 评论 -
codeforces 302B. Eugeny and Play List
题意:求时间num是在第几首歌,看到这么大的数据,就用二分做,做不出来,二分实在是掌握的不好,然后就用搜索做#include #include #include using namespace std;const int MAXN = 100005;long long arr[MAXN],brr[MAXN],crr[MAXN];int n,m;int main(){原创 2013-10-17 20:18:57 · 1209 阅读 · 0 评论 -
UVA - 1335 Beijing Guards
题意:LRJ大白上的题目:点击打开链接#include #include #include #include using namespace std;const int MAXN = 100050;int n,A[MAXN];int Left[MAXN],Right[MAXN];int ok(int p){ Left[1] = A[1]; Right[1]原创 2013-11-18 22:42:42 · 920 阅读 · 0 评论 -
UVA - 12097 Pie
题意:有F+1个人来分N个圆派,每个人得到的必须是一整块派,而不是几块拼在一起,且面积要相同,求每个人最多能得到多大面积的派(不必是圆形)思路:二分答案,因为派是不能拼起来的,所以一个半径r的派只能切出[pir^2/x]个派。向下取整,#include #include #include #include #include using namespace std;const i原创 2013-12-01 11:12:05 · 963 阅读 · 0 评论 -
UVA - 12124 Assemble
题意:你有b块钱,给出n个配件各自的种类,品质因子和价格,要求每种类型的都要买一个,总价格不超过b,且品质最差配件的品质因子要尽量大思路:二分,设答案是x,删除品质因子小于x的所有配件,如果可以组装出不超过b的电脑,那么答案>=x,否则答案#include #include #include #include #include #include using namespace原创 2013-12-01 14:40:15 · 820 阅读 · 0 评论 -
POJ - 3061 Subsequence
题意:求一个有n个正整数组成的序列,给定整数S,求长度最短的连续序列,使得它们的和大于等于S思路:第一种方法:用二分找到满足B[j]-B[i] >= S的最小的长度,复杂度O(nlogn)第二种方法:由于j是递增的,B[j]也是递增的,所以B[i-1]#include #include #include #include using namespace std;const i原创 2013-12-01 19:57:21 · 1078 阅读 · 0 评论 -
HDU - 5008 Boring String Problem (后缀数组+二分+RMQ)
Problem DescriptionIn this problem, you are given a string s and q queries.For each query, you should answer that when all distinct substrings of string s were sorted lexicographically, which原创 2014-10-03 14:36:19 · 1479 阅读 · 0 评论