
二分三分
Noooooorth
能够放弃的东西从来都不叫梦想
展开
-
HDU 3400 Line belt(三分)
这道题是典型的三分,因为从一点到另一条直线上的点的距离的变化不是单调的,而是先减后增,所以需要用嵌套三分。首先三分AB,再依次以mid和mmid为起点,CD上的某点为终点三分即可。原创 2015-07-23 00:56:04 · 1696 阅读 · 0 评论 -
HDU 2298 Toxophily(公式/三分+二分)
已知发射点坐标为(0,0)和重力加速度g=9.8,给出目标的坐标和初速度,求能够击中目标的最小仰角。有两种思路,第一种是直接假设能够击中目标,写出公式,化成一元二次方程,把公式内的三角函数全部化成tan,判断[0,PI/2]有无解;第二种方法就是三分+二分,首先三分仰角,求出轨迹在x处的纵坐标,若纵坐标最大值小于y,则直接输出-1,三分过后[0,r]上就是单调递增的,直接二分即可。原创 2015-07-24 08:51:51 · 1918 阅读 · 0 评论 -
POJ 2002 Squares(二分)
给一个平面散点集,判断能够构成多少个正方形。虽然有3.5秒,但四层暴力循环的话肯定会超时循环。所以有这样一种思路:先把点排序,双层循环枚举前(n-2)个点,为了防止重复判断,第二层循环里的j要从i+1开始,二分查找后(n-j)个点中是否存在能与s[i],s[j]构成正方形的点,所以第二层循环结束的条件是j<=n-2,剩下2个点用来查找,二分查找的范围是[j+1,n]。原创 2015-07-25 01:58:20 · 1851 阅读 · 3 评论 -
Gym 100712F Travelling Salesman(二分+并查集)
题目大意就是一个人要周游所有城市但他所驾驶的汽车的油箱容量有限,告诉你走这些城市之间的道路的所需要的油量,求可以使这个人可以到达所有城市的最小容量,也就是从任何一个城市可以到达另一个城市。由于每条路的C值最大是100000,所以二分只需要不到20次。所以思路就是二分时用并查集判断整个图是否连通。这道题还有另一种思路,就是dijkstra算法,同样十分简单,不再赘述。原创 2015-07-21 00:23:31 · 872 阅读 · 0 评论 -
HDU 5726 GCD(RMQ+二分)
题目链接:点击打开链接题目大意:n个数,q次查询,每次查询输入l和r,输出区间GCD等于区间[l,r]的GCD的区间数。解题思路:n的范围为1e5,可以先用ST预处理出所有区间的GCD,时间复杂度为O(nlogn)处理过之后,对于任意区间都可以实现O(1)的查询了。然后就是计数的问题了,我们先定义一个map,map[key]表示GCD为key的区间个数。对于任意左端点固定的区间,随着右原创 2016-07-21 00:34:49 · 454 阅读 · 0 评论 -
POJ 1797 Heavy Transportation(二分+并查集/kruskal)
有n个城市,m条路,从1走到n的道路的最大承载量,最大承载量就是走过的路的承载量的最小值。呵呵呵~~~再次举个栗子:假设n=3,m=3,连接1与2的城市的路的承载量为3,连接1与3的承载量是4,连接2与3的承载量是5,那么从1到3有2种走法:(1)1-2-3,承载量依次是3,5,那么最大承载量就是5;(2)1-3,承载量是4,最大承载量也是4,所以答案是4。原创 2015-08-16 14:08:17 · 2089 阅读 · 0 评论