moo专题

POJ2010 Moo University - Financial Aid

题意:奶牛学校招生,c头奶牛报名,要选n头(n为奇数),学校是义务制,所以每头奶牛的学费都由学校负责。每头奶牛都由自己的考试分数和它需要花的学费,学校总共有f的资金,问合法招生方案中中间分数(即排名第(n+1)/2)最高的是多少。 题解:先将所有的奶牛按照分数由高到低排序,假设k是招的奶牛中排名中间的那头,按照排序可知,[1,k-1]中的奶牛必定被招了(n-1)/2头,[k+1,c]中也必定被招

poj-2231(Moo Volume) 递推

题意:给你n个数求n个数任意一个数与其他数之差的绝对值之和的和 题解:例如; 6 1 2 5 7 8 9 先排序 正向: 1 --->9                                  8 1 --->2----->9                        8 1 --->5----->9                        8 1 --

POJ 2010 Moo University - Financial Aid

先将序列以score排序,于是有一个以financial aid的值的序列。     于是可以枚举每一个点为中位数点,那么要满足题目条件则有:     选择第i个点位中位数点,那么设i点之前的(n / 2)个financial aid 为 dp1[i - 1],设i点之后的(n / 2)个financial aid为dp2[i + 1]     则有 F[i](i点的financial

Heap:Moo University - Financial Aid(POJ 2010)

牛的学校   题目大意:这只Bessie真是太顽皮了,她又搞了个学校,准备招生,准备通过一个考试筛选考生,但是不能招到每个学生,每个学生也不能一定能上学,要资助,问你在一定资金内,怎么收学生,使收到的学生的平均分最高?   这一道题怎么做呢?我们知道,题目给了一个条件就是N一定是奇数,这样其实就给了我们一个套路,那就是N一定是中间的那

Moo University - Financial Aid

poj2010:http://poj.org/problem?id=2010 题意:给你c个点,每个点有两个属性,一个是成为成绩g,一个是资金f,又给你总资金F,然后让你从这c个点中选出n个,这n个点满足两点:1,n个点的资金和不大于总资金F,2:n个点成绩的中位数尽可能的大。题解:这一题开始自己也没有什么思路,看了别人的思路发现那样的做法好巧妙啊。思路:首先按照成绩给c个点进行排序,然后对于每

Divide and conquer:Moo University - Financial Aid(POJ 2010)

Moo University - Financial Aid    其实是老题了http://www.cnblogs.com/Philip-Tell-Truth/p/4926008.html   这一次我们换二分法来做这一道题,其实二分法比我以前那个方法好想一点,主要是这次我们可以根据下标进行二分,然后排两次序,第一次是根据分数来排

poj 2244 Eeny Meeny Moo

/*约瑟夫问题 题目罗里吧嗦,就是告诉你一个数n,从第二个数开始数,m最小取多少,可以保证数字2存活,相当于位置1存活 */#include <stdio.h>int main(int argc, char *argv[]){int n,m,i,s;int a[150];while(scanf("%d",&n) && n){m=1;while(1){s=0;for (i=2;i<=n

[USACO23FEB] Moo Route II S 题解

比较有意思。 无法保证每个点只被访问一遍,而此题每条边显然不会重复走,考虑保证每条边仅走一次。 一种 naive 的想法就是标记边是否走过。举个例子: for(int i=1; i<=n; i++)if(vis[i]) continue; 仍然是 O ( n ) 。 O(n)。 O(n)。 然后就考虑每次只访问有必要的边。对 u u u 出边按 r r r 排序,二分找出当前时间

POJ 2010 Moo University - Financial Aid 1759 Garland

二分中位数,然后另存一个数组,每次左边右边找,来判断下次的边界左移还是右移,或者符合条件,然后取一个最大值,再看有没有更大的,如果全都不符合,说明不存在,break。 #include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#include<map>#include<math.h>typede