现在的位置: 首页 > 综合 > 正文

lightoj 二分题简要题解

2018年02月21日 ⁄ 综合 ⁄ 共 2071字 ⁄ 字号 评论关闭

1、lightoj 1043 

题目大意:给你一个三角形ABC,DE//BC,已知三角形ADE和四边形BDEC的面积的比,求AD的长度。

思路 : 直接二分AD的长度即可。

2、lightoj 1048

题目大意:有N 个数,将它们按顺序分成M份,M<=min(N,300)。使得每一份的和的最大值最小。有很多中情况,这些情况中第一天、第二天……的和最大的情况。

思路 : 二分每一份的和,得到一个数mid。之后扫描数组,如果当前和大于mid或者剩下的数刚好能够凑成剩下的那些份数,那么输出当前值。

3、lightoj 1062

题目大意 : 两个梯子靠墙放,一个长度是x一个长度是y,它们交点到地面的距离是c。求这两个梯子底部的距离。

思路:二分底部的距离t,往计算t' ,根据t和t'的大小关系更新上下界即可。

4、lightoj 1076

同1048

5、lightoj 1088

题目大意 : 有一维的n个点和q条线段。询问每条线段上的点有多少个;

思路: 将所有点排序,寻找这些点中对于每条线段的上下界即可。

6、lightoj 1127

题目大意 : 有n个物体(n<30)和一个容量为W的容器,问将容器不装满的放置物品的方式有多少种。

思路 : 状态压缩+二分。将前n/2个物体看做一个整体,将剩下的看做一个整体。1<<(n/2)个状态代表前一半的物品使用情况,然后求出每一种状态的总的体积。排序。对于后面的那一半也是。答案只需枚举一半然后在另一半中找和W差的下界即可。

7、ligthoj 1137

题目大意 : 有一个长为L的棍子,伸长之后变成了L'(L'>L).并且伸长之后是个弦长为L的弧形。求该段弧所在的圆的半jing!

思路 :  二分圆心角。

8、ligthoj 1138

题目大意 : 输出一个最小的整数N,使得N!末尾含有正好Q个0.

思路 : 二分N,对于每一个N可以通过计算小于等于它的数中含有因子5的个数。

9、ligthoj 1170

题目大意 :perfect power 是指可以表示成x^y(x>1,y>1)的数,给一个区间[A,B]求由这个区间的所有perfect能组成多少种不同形态的二叉查找树。

思路 : 预处理出范围内的所有perfect power和范围内的所有卡特兰数。二分搜索个数。

10、ligthoj 1235

题目大意 : 有N个硬币(N<=18),问能否在每个硬币使用不超过两次的情况下支付正好K的面额。

思路 : dfs构造出用这些硬币用前一半能支付的所有费用和后一半能支付的所有费用。之后排序,枚举前一半的每个面值在第二个里面二分寻找即可。(或者用set保存)。

11、ligthoj 1276

题目大意 : lucky number是指只含4和7的数字。very lucky number是指lucky number 和能有several个lucky number做乘积得到的数。询问一些区间[A,B](A,B<=1e12)之间very lucky number 的数量。

思路: 预先处理出所有的8000+个lucky number ,然后对这些数dfs得到范围内的所有very lucky number 。然后对于每个区间二分即可。

12、lightoj 1280

题目大意 : 有n门课,知道满分和A得的分数。问拿掉k门课之后平均比直的最大值。

思路 :二分平均值,然后按照每门课与平均比值(即该得多少分)之间的差值从大到小排序,之后取前面的n-d门成绩计算比值,然后更新比值。

13、lightoj 1307

题目大意: 给n个木棒,问由这些木棒能组成多少个不同的三角形。

思路:枚举前两个木棒,然后求得第三个木棒的数量即可。二分。

14、lightoj 1358

题目大意:给定平面上的n个点和一个圆心的坐标,每一秒钟圆的半jing增加1,问几秒之后可以这个圆可以覆盖这个多边形的面积的P%.

思路:二分圆的半径,然后求圆覆盖。

15、lightoj 1384

题目大意:一个图上,每一条边有两个属性d和c,d是允许的最大带宽,c是修建这条边的费用。从顶点0出发,能够到达所有的边。要求在总费用不超过W的情况下最大带宽是多少。

思路:二分最大带宽,然后求最小树形图,更新最大带宽即可。

16、lightoj 1383

题目大意:在二维坐标系上y=k是分界线,y>k的部分是n个敌人,y<k的部分要安置T个狙击手。每个狙击手的射程是D。问安置好这些狙击手之后,在能将所有的敌人都打掉的情况下最大化狙击手到y=k的距离。

思路:二分答案。然后确定每个敌人可被攻击到的x的区间范围,然后对这些区间做区间覆盖统计需要安狙击手的个数。

17、lightoj 1391

题目大意:一个人从(0,0)点出发,要到达(100×n,D)这个点。二维平面被分成了平行于x轴的n份,每一份的宽度都是n,每一份的材料不一样导致在每一份当中的速度不一样。求能到达终点的最短时间。

思路:拉格朗日乘法+二分。

总结。上面这些题,还有另外的几个没有加进来,因为不用二分反而方法更好。

另外,只有1391和1358没有过掉,个人感觉整体的思路没有问题,WA的原因就是精度问题或者是其他不可预料的问题。各路大神如果有切掉的话跪求告知。

抱歉!评论已关闭.