
二分思想
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 · 2399 阅读 · 1 评论 -
Codeforces Round #152 (Div. 2) D. Sweets for Everyone!(二分)
大致题意:有一些商店和一些居民在一排上,某人要从起点开始对所有居民发放1kg糖果,每个商店可以可以且仅可以买一次1kg糖果,每向前或向后走以单位需要1时间单位,求在t时间内发完所以的居民最少需要自身带多少kg糖果 思路:这种题,明显就是二分,二分答案,然后从边界开始判可行,这题的可行还是有点难判,首先糖果手中充足,遇到一个居民就发放1kg,当糖果不充足的时候,只能有两种决策,直接跑到尽头原创 2015-08-21 11:35:21 · 815 阅读 · 0 评论 -
POJ 2785 4 Values whose Sum is 0(折半枚举)
4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 17088 Accepted: 4998 Case Time Limit: 5000MS Description The SUM problem c原创 2015-07-06 20:27:46 · 900 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) F题 Ant colony(线段树求区间gcd)
F. Ant colony time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Mole is hungry again. He found one ant colony,原创 2015-05-31 11:53:04 · 985 阅读 · 0 评论 -
POJ 1743 Musical Theme (后缀数组,求最长不重叠重复子串)
题意: 有N(1 “主题”是整个音符序列的一个子串,它需要满足如下条件: 1.长度至少为5个音符 2.在乐曲中重复出现(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值。) 3.重复出现的同一主题不能有公共部分。 思路:是要求最长不重叠重复的子串,如果没有不重叠的限制条件,那么height中的最大值即可 现在对于这题需要二分出答案,二分出最长重复子串原创 2015-03-17 20:22:50 · 776 阅读 · 0 评论 -
POJ 2456 Aggressive cows(二分)
题目链接:http://poj.org/problem?id=2456 题意:有一排n个牛舍,坐标分别为xi,有m头牛,希望尽可能把他们之间分开,求他们之间最近的两头牛之间的距离最大可以拉到多少。这是二分中最大化最小值的题目,英文的题目又最大又最小有的人不易理解。 思路:显然两头最近的牛的距离太大将没有一种方式安置在牛舍中,两头最近的牛距离越小就越能放置在牛舍中,所以用把答案二分出来,每个mi原创 2015-02-08 08:25:06 · 1061 阅读 · 0 评论 -
POJ 2976 Dropping tests(初遇0,1分数规化)
题目大意就 给定n个二元组(a,b),扔掉k个二元组,使得剩下的a元素之和与b元素之和的比率最大。 关于0,1分数规划这个文章介绍的不错http://blog.youkuaiyun.com/hhaile/article/details/8883652 01分数规划问题:给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价。如果选取i,定义x[i]=1否则x[i]=0。每一个物品只有选或者不原创 2015-02-08 09:04:02 · 830 阅读 · 0 评论 -
POJ 3061 Subsequence(尺取法)
题目链接:http://poj.org/problem?id=3061 题意:给定长度为n的数列整数,以及整数S,求出总和不少于S的连续子序列的长度的最小值。如果解不存在,则输出0。 尺取法:通常是指对数组保存一对下标(起点,终点),然后根据实际情况交替推进两个端点直到解决问题的方法,这个操作很像尺蠼虫故得名。 思路:所以可以先初始化起点s,终点g,再一步一步推进,直到sum>S,然后记录此原创 2015-02-11 23:29:07 · 699 阅读 · 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 · 720 阅读 · 0 评论 -
POJ 2528 Mayor's posters (hash+线段树成段更新)
题意:有一面墙,被等分为1QW份,一份的宽度为一个单位宽度。现在往墙上贴N张海报,每张海报的宽度是任意的,但是必定是单位宽度的整数倍,且 思路:简单的成段更新,但是数据量是1千万,会MT,所以要区间压缩(离散化),保证覆盖的关系不变,离散化的时候有个易错的细节,poj数据水了,这个易错点引用hh牛的话: 而这题的难点在于每个数字其实表示的是一个单位长度(并非一个点),这样普通的离散化会造成许多原创 2015-02-19 16:03:47 · 697 阅读 · 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 · 952 阅读 · 0 评论 -
POJ-3450-Corporate Identity(KMP)
题意:给你n个的串,求出它们的最长公共子串,如果不存在这个子串,则输出“IDENTITY LOST”,如果存在多个最长公共子串,则输出字典序最小的那一个。 思路:二分枚举最长公共子串的长度,然后再枚举此长度的所有子串,找出字典序最小的解(不用二分直接暴力也能过)//400 KB 125 ms #include #include #include #include using namespace原创 2015-02-17 21:12:43 · 1217 阅读 · 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 · 971 阅读 · 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 · 718 阅读 · 0 评论