二分
Bread Sir
记录算法之路
展开
-
二分搜索典型应用(一)从有序数组中查找某个值
二分搜索的第一个典型应用——查找值lower_bound:问题描述:给定长度为n的单调不下降数列a0...an-1和一个数k,求满足ai >= k条件的最小i。不存在时输出n。样例输入:n = 5a = {2, 3, 3, 5, 6}k = 3样例输出:1分析这个问题完全可以暴力(暴力2333),但是有更好更高效的算法。 因为是有序性,我们可以看一下n/2的值,如果a[n/2] >= k原创 2017-04-17 21:14:37 · 795 阅读 · 0 评论 -
POJ - 3579 Median(二分/查找第K大的值)
问题描述 Given N numbers, X1, X2, … , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i < j ≤ N). We can get C(N,2) differences through this work, and now your task is to原创 2017-04-26 21:05:19 · 412 阅读 · 0 评论 -
STL函数 lower_bound / upper_bound
lower_bound 这个函数是从已经排好序的序列a中利用二分搜索找出指向满足ai >= k的ai的最小的指针,注意是指针。upper_bound函数类似,就是求出满足ai > k的ai的最小的指针。#include<cstdio>#include<algorithm>using namespace std;int a[100];int main(){ printf("输入序列个原创 2017-04-26 14:18:52 · 251 阅读 · 0 评论 -
POJ3273 Monthly Expense(二分法)
问题描述: Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000)原创 2017-04-20 00:14:03 · 360 阅读 · 0 评论 -
POJ2976 Dropping tests (最大化平均值/二分)
问题描述:这个题目,典型的最大化平均值,依然是水题,但是因为一些细节,导致提交好几次都wa。细节: 1.题目是drop k 个,所以最后转换一下思想(和牛过河搬石子是一样的),在n个里选n-k个,则相当于drop k 个。 2.题目要求the average should be rounded to the nearest integer,就因为这个,wa了几次没发现。代码如下:#include原创 2017-04-19 00:25:47 · 378 阅读 · 0 评论 -
二分搜索
引言:有一个二分搜索的经典问题——猜数。犹记得小学时候,经常在中央二套看一个电视节目,名字好像叫啥,对,是“幸运52”,李咏大叔主持的,当时就有一个游戏是“猜商品的价格”。游戏规则大概是这样的,给你看一件商品,规定限时多少秒,让你猜价格是多少,李咏大叔通过你猜的价格提示“高了”还是“低了”,然后你根据他的提示,继续猜,直到猜到为止或时间截止。 -_-||| 当时这个游戏很多人都傻b地从一个数开始依原创 2017-04-17 15:24:40 · 344 阅读 · 0 评论 -
二分法典型应用(三)最大化平均值
和最大化最小值类似,最大化平均值也可以通过二分法求得。比如下面这个经典的问题: 有n个物品的重量和价值分别是wi和vi,从中选出k个物品使得单位重量价值最大。样例输入:3 22 25 32 1样例输出:0.75分析:一般先想到的是将每个物品的单位重量价值算出来,然后排个序,从大到小贪心进行选择,可惜这样是不对的,这样不能保证最后一定是最大平均值,直接用贪心对于这类要涉及多个因素比如求最大原创 2017-04-18 20:08:39 · 1641 阅读 · 0 评论 -
POJ3258 River Hopscotch(最大化最小值/二分法)
问题描述:Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, straight river with原创 2017-04-18 00:26:44 · 355 阅读 · 0 评论 -
二分法典型应用(二)最大化最小值 POJ2456 Aggressive cows
问题描述: Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 <= xi <= 1,000,000,000).His C (2 <= C <= N) cow原创 2017-04-18 00:04:53 · 1233 阅读 · 0 评论 -
POJ - 3685 Matrix(二分/查找第k大值)
问题描述Given a N × N matrix A, whose element in the i-th row and j-th column Aij is an number that equals i^2 + 100000 × i + j^2 - 100000 × j + i × j, you are to find the M-th smallest element in the matr原创 2017-04-26 23:24:38 · 401 阅读 · 0 评论