http://community.topcoder.com/stat?c=problem_statement&pm=13625&rd=16278首先,如果记得曼哈顿距离最小值那个问题,会想起一维的情况可证,点出现在中位数那里是最小的。这里也可证明,四个点,出现在中位数位置是最小的。题解里的做法是,试...
分类:
其他好文 时间:
2015-01-23 00:45:54
阅读次数:
206
题目:UVA-11300-Spreading the Wealth思路:对于人i有 现有Ai-出xi+入xi+1=平均M,Ci=Σ1~i(Ai-M),得C中有x0使得0,C1~Cn-1与其差的和最小,即为answer,x0为C中位数。wa#include #include#include#inclu...
分类:
其他好文 时间:
2015-01-22 20:09:06
阅读次数:
135
题目大意:给定一条道路上的n个稻田,要求建一个粮仓,并且选定一些稻田进行运输,这些稻田到粮仓的距离之和不能超过B,求最多能选择多少个稻田
维护一个队列,头指针从前到后扫一遍
如果发现尾指针到头指针这段稻田的中位数上建一个粮仓时距离之和超过了B,就调整尾指针
对距离维护一个前缀和 每次取中位数之后可以O(1)计算距离和
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-01-22 09:29:00
阅读次数:
132
题意:
给n个数,他们两两之间较大数减去较小数总共有n*(n-1)/2个数,要求这些数的中位数。
分析:
两次二分,第一次枚举答案,第二次判断该数是否可能成为中位数。
代码:
//poj 3579
//sep9
#include
#include
using namespace std;
const int maxN=1e5+10;
int a[maxN];
int n,m;
in...
分类:
其他好文 时间:
2015-01-22 01:49:51
阅读次数:
338
题意 : 见题目。
题解:
二分答案,然后对于一个ans,它显然是取了连续的一段。
然后这个连续的一段显然一定是取中位数那个稻田作为粮仓。
然后显然可以区间快速转移。
然后显然这是一道水题,显然他需要开long long。
显然如果你还不懂的话可以留言问。
代码:
#include
#include
#include
#include
#define N 1...
分类:
其他好文 时间:
2015-01-21 15:14:33
阅读次数:
155
原题地址将“寻找中位数”转化成更一般化的“寻找第k大的数”这个问题。因为数组已经排序,所以可以使用二分缩小范围,使得时间复杂度满足要求。假设A、B数组里都至少有k/2个元素,那么可以将k平均划分成k/2和k/2两半,在A里找第k/2大的元素,在B里找k/2大的元素(对k划分,解题的关键)。因为数组已...
分类:
其他好文 时间:
2015-01-18 14:25:07
阅读次数:
125
题目大意:给出一个1~n的排列,问这其中的中位数为k的子序列的数量是多少。
思路:要想让k为中位数,一定要让它出现在这个序列中所以就以这个数为中心向两边拓展。想让一个数成为中位数,那么这个序列中出现的小于它的数一定要等于大于它的数。考虑到这个数左右都有可能有数字,那么就可以表示成:前多+后多=前少+后少,也就是前多-前少=后少-后多。之后就用个数组随意统计一下就行了。
CODE...
分类:
其他好文 时间:
2015-01-15 09:25:09
阅读次数:
130
首先找出b在数列中的位置mid用 f[i]记录mid左边从mid往左统计比m小的数与比m大的数的差值为i的个数用g[i]记录mid右边从mid往右统计比m大的数与比m小的数的差值为i的个数。。有点语死早,找个样例模拟一下就懂了 1 var n,b,mid,k,I:longint; 2 ans...
分类:
其他好文 时间:
2015-01-14 19:52:54
阅读次数:
139
题意:
有c有牛,从中选(n-1)/2头,使他们的得分中位数最大且需要的资金援助和不超过f.
分析:
堆的运用大顶堆维护最小和。
代码:
//poj 2010
//sep9
#include
#include
#include
using namespace std;
const int maxN=100024;
int dpl[maxN],dpr[maxN];
priority...
分类:
其他好文 时间:
2015-01-08 13:26:24
阅读次数:
184
输入一个有序的数组,如何实现将这个有序整数数组放到二叉树中?
分析:对于二叉树,可以将这个有序数组插入到二叉搜索树中,毕竟二叉搜索树还是有很多特定的。那么对于创建二叉搜索树来说,就是简单的递归了。关于树的算法设计一定要联想到递归,因为树本身就是递归的函数。
那么可以对于这个有序数组分析,将这个数组的中位数作为根节点,然后对于数组的前半部分创建一个树作为根节点的左子树,后半部分创建一个二叉搜索树...
分类:
编程语言 时间:
2015-01-04 17:10:58
阅读次数:
195