二分思想
kalilili
双眼闭三年。
展开
-
POJ 1064 Cable master(初遇二分)
题目链接:http://poj.org/problem?id=1064题意:有n条绳子,他们的长度是Li,如果从他们中切割出K条长度相同的绳子,这相同的绳子每条有多长,输出至小数点后两位“ then the output file must contain the single number "0.00" (without quotes).”不是四舍五入到两位,一般四舍五入题目会说“bou原创 2015-02-08 08:17:02 · 2359 阅读 · 1 评论 -
Codeforces Round #152 (Div. 2) D. Sweets for Everyone!(二分)
大致题意:有一些商店和一些居民在一排上,某人要从起点开始对所有居民发放1kg糖果,每个商店可以可以且仅可以买一次1kg糖果,每向前或向后走以单位需要1时间单位,求在t时间内发完所以的居民最少需要自身带多少kg糖果思路:这种题,明显就是二分,二分答案,然后从边界开始判可行,这题的可行还是有点难判,首先糖果手中充足,遇到一个居民就发放1kg,当糖果不充足的时候,只能有两种决策,直接跑到尽头原创 2015-08-21 11:35:21 · 742 阅读 · 0 评论 -
POJ 2785 4 Values whose Sum is 0(折半枚举)
4 Values whose Sum is 0Time Limit: 15000MS Memory Limit: 228000KTotal Submissions: 17088 Accepted: 4998Case Time Limit: 5000MSDescriptionThe SUM problem c原创 2015-07-06 20:27:46 · 858 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) F题 Ant colony(线段树求区间gcd)
F. Ant colonytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMole is hungry again. He found one ant colony,原创 2015-05-31 11:53:04 · 937 阅读 · 0 评论 -
POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)
题意:有N(1 “主题”是整个音符序列的一个子串,它需要满足如下条件:1.长度至少为5个音符2.在乐曲中重复出现(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值。)3.重复出现的同一主题不能有公共部分。思路:是要求最长不重叠重复的子串,如果没有不重叠的限制条件,那么height中的最大值即可现在对于这题需要二分出答案,二分出最长重复子串原创 2015-03-17 20:22:50 · 738 阅读 · 0 评论 -
POJ 2456 Aggressive cows(二分)
题目链接:http://poj.org/problem?id=2456题意:有一排n个牛舍,坐标分别为xi,有m头牛,希望尽可能把他们之间分开,求他们之间最近的两头牛之间的距离最大可以拉到多少。这是二分中最大化最小值的题目,英文的题目又最大又最小有的人不易理解。思路:显然两头最近的牛的距离太大将没有一种方式安置在牛舍中,两头最近的牛距离越小就越能放置在牛舍中,所以用把答案二分出来,每个mi原创 2015-02-08 08:25:06 · 992 阅读 · 0 评论 -
POJ 2976 Dropping tests(初遇0,1分数规化)
题目大意就 给定n个二元组(a,b),扔掉k个二元组,使得剩下的a元素之和与b元素之和的比率最大。关于0,1分数规划这个文章介绍的不错http://blog.csdn.net/hhaile/article/details/888365201分数规划问题:给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价。如果选取i,定义x[i]=1否则x[i]=0。每一个物品只有选或者不原创 2015-02-08 09:04:02 · 788 阅读 · 0 评论 -
POJ 3061 Subsequence(尺取法)
题目链接:http://poj.org/problem?id=3061题意:给定长度为n的数列整数,以及整数S,求出总和不少于S的连续子序列的长度的最小值。如果解不存在,则输出0。尺取法:通常是指对数组保存一对下标(起点,终点),然后根据实际情况交替推进两个端点直到解决问题的方法,这个操作很像尺蠼虫故得名。思路:所以可以先初始化起点s,终点g,再一步一步推进,直到sum>S,然后记录此原创 2015-02-11 23:29:07 · 648 阅读 · 0 评论 -
POJ 2728 Desert King(初遇最优比率生成树)
题目链接:http://poj.org/problem?id=2728题意:给出几个村庄的坐标x[i]和y[i],以及海拔z[i]。要在这些村庄之间建水渠,费用和两个村庄的海拔差成正比,水渠长度和村庄二维坐标(x,y)上的距离成正比,要求一种方案使得(总的花费/总的水渠长度)最小,输出这个最小值,保留三位小数。 这是一道0,1分数规划的题目,求的是一棵生成树sigma(dh)/sigm原创 2015-02-11 19:42:54 · 675 阅读 · 0 评论 -
POJ 2528 Mayor's posters (hash+线段树成段更新)
题意:有一面墙,被等分为1QW份,一份的宽度为一个单位宽度。现在往墙上贴N张海报,每张海报的宽度是任意的,但是必定是单位宽度的整数倍,且思路:简单的成段更新,但是数据量是1千万,会MT,所以要区间压缩(离散化),保证覆盖的关系不变,离散化的时候有个易错的细节,poj数据水了,这个易错点引用hh牛的话:而这题的难点在于每个数字其实表示的是一个单位长度(并非一个点),这样普通的离散化会造成许多原创 2015-02-19 16:03:47 · 660 阅读 · 0 评论 -
Codeforces #291 (Div. 2) D. R2D2 and Droid Army(RMQ+二分)
题意:有n*m的矩阵,然后你有k发子弹。现在你可以朝着任意列发射子弹,每一发子弹都会使该列上的数值-1,最小减少到0。现在问你连续最长的行数,在k发子弹内,使得这些行上的数值全部为0.思路:简单的二分枚举最长行数区间,每个区间的最大值决定了要发射的子弹数,所以是RMQ问题,当然这里的枚举全部枚举,用尺取法也可以。//889 ms#include#incl原创 2015-02-19 16:15:32 · 914 阅读 · 0 评论 -
POJ-3450-Corporate Identity(KMP)
题意:给你n个的串,求出它们的最长公共子串,如果不存在这个子串,则输出“IDENTITY LOST”,如果存在多个最长公共子串,则输出字典序最小的那一个。思路:二分枚举最长公共子串的长度,然后再枚举此长度的所有子串,找出字典序最小的解(不用二分直接暴力也能过)//400 KB 125 ms #include#include#include#includeusing namespace原创 2015-02-17 21:12:43 · 1147 阅读 · 0 评论 -
POJ3080-Blue Jeans(KMP,水)
大致题意:就是求k个长度为60的字符串的最长连续公共子串,2规定:1、 最长公共串长度小于3不输出2、 若出现等长的最长的子串,则输出字典序最小的串思路:和POJ-3450-Corporate Identity一样二分+枚举,但是直接暴力也0ms//192 KB 0 ms 题目太水,我就把POJ3450的代码改了几句话#includ原创 2015-02-17 21:17:45 · 942 阅读 · 0 评论 -
Codeforces Round #344 (Div. 2) E - Product Sum(三分 (java))
题意:n = 20w的数列, 价值val = sigma(i * Ai), 可以把任意一个数移到任意位置, 求价值最大值思路:对每个数,分别左右移动, 三分求得移动的最佳位置三分:注意把要三分的区间向左向右各扩大一格,这样就不会使mid == midd出现了,避免了出错。代码:import java.util.*; import java.math.*; imp原创 2016-03-04 19:52:13 · 672 阅读 · 0 评论