![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
文章平均质量分 68
AndyBear
这个作者很懒,什么都没留下…
展开
-
答案最小化——POJ 3104
题目描述:n件衣服,每件衣服原创 2014-11-25 12:50:54 · 521 阅读 · 0 评论 -
二分加二分——POJ3685
题目描述:给出一个矩阵,矩阵每个点(i,j)的数值是i*i+100000*i+j*j-100000*j+i*j。求出第m大的数。大致思路:数据范围略大,所以采用二分的想法,二分一个数值x,每次统计比他大的数的个数,在统计过程中,对于每一列二分行号j,确定这一列比x大的数目。这样整体算法就是nlogn*logn的了。代码:#include #include using na原创 2014-11-26 19:33:09 · 426 阅读 · 0 评论 -
最大化平均值——poj 3111
题目描述:原创 2014-11-25 09:16:37 · 1351 阅读 · 1 评论 -
Cable Master
题目描述: 有N条绳子,他们的长度分别为li。如果从他们中切割出k条长度相同的绳子的话,这k条绳子每条最长能有多长?答案保留两位小数。解题思路: 这个问题可以用二分搜索解决。只需一个足够大的上限,然后二分找到最大的x。代码:#include#include#include using namespace std; int原创 2014-03-03 06:59:45 · 813 阅读 · 0 评论 -
Aggressive cows
题目描述: 农夫约翰搭了一间牛棚,有N个牛舍。牛舍排在一条线上,第i号牛舍在xi的位置。但是他的M头牛对小屋不满意,因此经常相互攻击。约翰为了防止牛之间相互伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。解题思路:1. 对牛舍位置排序;2. 把第一头牛放入x0;3. 如果第i头牛放在xj,第原创 2014-03-03 06:55:03 · 927 阅读 · 0 评论 -
最大化平均值——POJ2976
题目描述:有n场考试,每场考试有b个问题,你每次能答对a个问题,你现在可以舍弃k个科目,使得你的分数100*Σa/Σb最大。大致思路:这个题目和poj3111思路很类似,也是平均化最大值,详细思考过程参见POJ3111。不过这个题需要注意一点就是最后结果乘100之后取整需要四舍五入。代码:#include #include #include #include #incl原创 2014-11-26 18:01:45 · 626 阅读 · 0 评论 -
Best Cow Line
题目描述: 给定长度为N的字符串S,要构造一个字符串T。起初T为空字符串,随后反复进行一下操作,直到S为空串。1. 从S的头部删除一个字符,加到T的尾部。2. 从S的尾部删除一个字符,加到T的尾部。目标要构造一个字典序尽可能小的字符串T。解题思路: 要求字典序尽可能小,那么就可以用贪心的思想,从局部最优得到整体最优的答案。原创 2014-03-03 06:58:42 · 702 阅读 · 0 评论 -
二分——POJ3388
题目描述:给出k种花色砖块的数量,问n*n的地板最多能铺多少行相同的。大致思路:n的范围40000,k的范围50000,典型的二分数据范围,这样就二分答案,每次判断能不能拼出答案即可。代码:#include #include using namespace std;const int maxk = 50000 + 10;int n,k;int c[maxk];原创 2014-12-11 13:15:17 · 700 阅读 · 0 评论 -
Fence Repair
题目描述: 农夫约翰为了修理栅栏,要将一块很长的木板切割成N块。准备切成的木板的长度为Li。未切割前的长度恰好等于切割后的长度和。每次切断木板,需要的代价都是这块木板的长度。求出符合切割目标的最小开销。解题思路: 可以倒过来想,把切割想象成木板合成过程,合成的代价就是新木板的长度,这样就是典型的合并果子的贪心问题了,对于数据的处理,如果每次合并完后都进行原创 2014-03-03 07:26:39 · 630 阅读 · 0 评论