![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索--二分搜索
exmy
Less is more, and more is less.
展开
-
poj--3258 River Hopscotch(最大化最小值)
River Hopscotch题意题目抽象一下,就是N个整数的数组,去除其中的M个,使得具有最小间距的相邻两个数间距最大,即这个最小间距有个上界,不会有比其更大的最小值。题解确定上下界,二分搜索。#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int maxn = 50000 +原创 2016-09-13 20:24:30 · 338 阅读 · 0 评论 -
poj--3273 Monthly Expense(最小化最大值)
Monthly Expense题意有N个整数构成的数组,将其分成连续的m段区间,使得每段区间之和的最大值最小,求这个最小值。题解最小化最大值的问题,即最大值有个下界,不会有比其更小的最大值。 这类问题常使用二分搜索解决。#include <iostream>#include <cstdio>#include <algorithm>using namespace std;const int m原创 2016-09-13 17:22:12 · 397 阅读 · 0 评论 -
PAT--1085 Perfect Sequence(二分查找)
题意给一个正整数序列和正整数p,定义完美序列为 M<=m∗pM <= m *p,其中,M是序列中最大的数,m是序列中最小的数。 从给定的序列中找到这样一个完美序列,使其包含尽可能多的元素。输出其包含的个数。题解首先排序,对序列的每一个数aia_i,计算 ax=ai∗pax = a_i * p,在序列中找出axax应该所处的位置pospos,pos−i+1pos - i + 1就是一个“完美”子序列原创 2016-02-22 15:07:30 · 559 阅读 · 0 评论 -
POJ--1064 Cable master(二分搜索)
传送门:1064 Cable master(挑战程序设计竞赛--练习)题意:有N条绳子,长度分别为 Li, 从它们中切割出K条长度相同的绳子,求这 K 条绳子每条最长能有多长?分析:设最长为x,则x满足条件:问题便转化为寻找到这样一个满足上述条件的x,这可以用二分搜索来寻找,搜索区间为 [0, max(Li) + c],c为任意常量,只要保证大于 max(Li)。每次迭代都会缩小解原创 2016-02-04 18:06:07 · 420 阅读 · 0 评论 -
hihoCoder--1469 优化延迟(二分+优先队列)
题解注意到SP(k)随着k增大而递减,因此可以在[1, N]区间内二分搜索k,对每一个k用优先队列计算SP(k). 时间复杂度:O(n∗logn∗logn)O(n*logn*logn)#include <bits/stdc++.h>using namespace std;const int maxn = 100000 + 10;long long N, Q;int p[maxn];long原创 2017-02-08 21:28:20 · 431 阅读 · 0 评论