二分法-二分思想
文章平均质量分 54
better_space
这个作者很懒,什么都没留下…
展开
-
【杭电2141】Can you find it?
我首先想到的是三重循环----超时,后来想前两个数组双重循环套第三个数组二分查找----还是超时,再后来就是现在的代码思路了300多ms。 其实和第二种想法很接近了,就是二分的对象变了,对第三个数组遍历循环,对前两个数组各项求和得到的数组求二分,因为这样就大大大大减少了循环次数,二分是省时间的嘛。 本题难点算法优化。#include<cmath>#include<algorithm>#in原创 2016-07-26 20:42:02 · 706 阅读 · 1 评论 -
【lightoj1307】Counting Triangles
J - J 圆周率用acos(-1.0) 使用longlongTime Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluSubmit Status Practice LightOJ 1307 uDebugDescriptionYou are given N sticks原创 2016-08-25 21:33:42 · 388 阅读 · 0 评论 -
【九度1502】最大值最小化
题目1502:最大值最小化时间限制:1 秒内存限制:128 兆特殊判题:否提交:566解决:214题目描述:在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m原创 2016-08-17 20:07:27 · 458 阅读 · 0 评论 -
【暑期训练3】晴天系列D题
Problem F: DTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 178 Solved: 38SubmitStatusWeb BoardDescription晴天想把一个包含n个整数的序列a分成连续的若干段,且和最大的一段的值最小,但他有强迫症,分的段数不能超过m段,然后他就不会分了。。。他想问你这个分出来的原创 2016-08-17 19:39:59 · 299 阅读 · 0 评论 -
【codeforces】706B—Interesting drink
B. Interesting drinktime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasiliy likes to rest after a hard wor原创 2016-08-17 09:05:00 · 383 阅读 · 0 评论 -
【Uva10566】Crossed Ladders
列出一个包含x,y,c的关系式,设宽为w,底边垂线左边为a,根据相似三角形关系: 1.a/w=c/sqrt(y*y-w*w); 2.(w-a)/w=c/sqrt(y*y-w*w); 两式合并消去a得: c/sqrt(x*x-w*w)+c/sqrt(y*y-w*w)=1; 能推出c与w有同增同减关系,所以当带入mid小于1时,实际w大于mid;反之小于mid,以此二分,再注意精度即可(误差小原创 2016-07-27 10:59:34 · 327 阅读 · 0 评论 -
【貌似是改编题】Expanding Rods
对这类输出形式的题目只要满足他的精度要求就行了,精度以后不同不必考虑。 只要找准其中的几何关系对h进行二分法求值,使其无限接近满足精度要求的真实值。 找准几何关系: 1.R=h+sqrt(R*R-l/2*l/2);求出R(直接用程序语言表示了哈) 2.半圆心角θ=arcsin(l/(2*R)) 3.l*=2θ·π·R/π=2θ·R 与这个题类似: http://原创 2016-07-27 15:24:05 · 228 阅读 · 0 评论 -
【985系列】985的0-1串难题
1895: 985的0-1串难题Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 270 Solved: 79SubmitStatusWeb BoardDescription985有一个长度为n的0-1串,已知他最多可以修改k次(每次修改一个字符即0->1 或者 1->0),他想知道连续的全1子串最长是多少。原创 2016-08-15 14:02:01 · 577 阅读 · 0 评论 -
【杭电oj4907】Task schedule
由于数据太大暴力循环会超时,如果先打表预处理一下就行了。#include <iostream>#include <stdio.h>#include <string.h>using namespace std;const int maxn=1e5+5;int a[maxn*2];int b[maxn*2];void prepare() { int ans=maxn*2;原创 2016-07-27 22:44:40 · 577 阅读 · 0 评论 -
【杭电2199】Can you solve this equation?
这题卡精度,精确到小数点后第四位,所以while()条件用<1e-5作为限制,不能受整数二分方法的限制,重要的是二分思想,本题只要让r或l直接等于mid即可,因为浮点型除以2后不存在约数是个确定的值,不符合while()条件就跳出输出mid,简洁明了。 还有其他的二分方法,不过这个理解起来最为简单,我也是借鉴别人的代码综合而来的,却是是受益匪浅。#include<stdio.h>#include原创 2016-07-26 20:32:38 · 272 阅读 · 0 评论 -
【NBUTOJ】Red packet
经过前面的一番折腾,这种题已经不是问题。 只是考虑全面就行了。 题意:发红包准备发m块钱,n个人,已经发了k个人。 求要成为运气王,至少需要在剩余的钱中得到多少钱,每人得到的钱数都大于0.#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;const int MAXN = 1*1e5+10;i原创 2016-07-27 20:44:38 · 320 阅读 · 0 评论 -
【杭电4004】The Frog's Games
思路:本题用到了二分的思想。青蛙一次跳跃的范围是0到L(题给),然后判断在一次跳跃距离为mid时能否在m次跳跃内完成,如果能完成则用一个变量记录mid,遇到更小的符合条件的一次跳跃的距离后更新该变量的值。直接输出该变量。#include<stdio.h>#include<algorithm>using namespace std;const int MAXN = 5*1e5+10;int a原创 2016-07-26 13:51:10 · 312 阅读 · 0 评论 -
【杭电1551】Cable master
题意:把4段网线分成11段每段至多多长。 现在总结一下二分的思想和步骤吧: 1.找到二分标准,就是对什么进行二分 2.找到两个临界点 3.判断mid时,是否满足条件,然后视情况更新l和r的值 4.我认为最重要的是while()括号内的条件选择,特别是对这种卡精度的题。#include<stdio.h>#include<math.h>const int MAXN = 1*1e4+10;原创 2016-07-26 21:36:48 · 372 阅读 · 0 评论 -
【杭电1969】Pie
这题也是卡精度的二分题目,我只是一个π的定义方式不同就给wa,记得以后π的定义用const double PI = acos(-1.0),就是cos函数下求π,括号内要用浮点数。 整体思路和我cable master那篇文章一样的。链接: http://blog.csdn.net/better_space/article/details/52039880#include<stdio.h>#原创 2016-07-27 09:38:00 · 511 阅读 · 0 评论 -
【poj3258】River Hopscotch
这题虽是二分的题,但感觉就是别扭,很难想清楚怎么设置判断。我也是看了别人的判断过程及判断依据后才成功ac。值得收藏的二分题。 判断的过程我尽量解释一下,有不清楚的地方请参阅网址: http://www.cnblogs.com/jingqi814/p/3581553.html这样讲应该能理解的: 1.首先去掉M个石头后两个石头之间会有最小的距离,本题让求这个最小距离的最大值。 2.我们二分是在原创 2016-07-27 18:06:50 · 293 阅读 · 0 评论 -
【codeforces237C】Primes on Interval
C. Primes on Interval time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output You’ve decided to carry out a survey in the theory of prime num原创 2016-10-17 22:50:03 · 354 阅读 · 0 评论