2012年9月4日
摘要: 题意:n个高矮不等的堆。每次可以从一个堆拿一块移动到另一堆。问起码移动几许次能使他们全都相等。思路:好经典的题目,看到过不只1次了。所有数的平均数与所有的数的差的绝对值加起来除以二。即 sum/n; ans += abs(sum-a[i]); ans/=2;CODE:#include<stdio.h>#include<stdlib.h>#include<string.h>usingnamespacestd;constintSIZE=101;inta[SIZE];intmain(){intn;inttimes=0;while(scanf("%d&qu 阅读全文
posted @ 2012-09-04 22:09 有间博客 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意:按顺序给你N个数,将这N个数分成连续的M段,使得这M段每段的和中的最大值最小,输出最小值(1<=N<=100000,1<=M<=N,每个数在1到10000之间)。思路:由于函数具有单调性的特征,因此可以用二分枚举的办法去实现它,这与POJ3258有非常相似的地方,但这里不需要排序。CODE:#include<cstdio>#include<cstdlib>#include<iostream>usingnamespacestd;constintSIZE=100010;inta[SIZE];intlow_bound,high_bou 阅读全文
posted @ 2012-09-04 17:14 有间博客 阅读(162) 评论(0) 推荐(1) 编辑
摘要: 题目大意:Freddy Frog暗恋Fiona Frog,在他们之间有n快石头,告诉你这n快石头的坐标,第一快为Freddy Frog的坐标,第n块为Finoa Frog的坐标,Freddy可以借助石头经过任何路径到达Fiona那里,问他最小的弹跳距离是多少(即由Freddy去Fiona的最短路径中的最长边)。思路:许多人是用Dijkstra做的,其实我个人认为这一道题作者的原意还是用Prim算法的变形。应用它的贪心去更新最长的边。由于输出是.3f而WA了 N次。CODE:#include<cstdio>#include<cstdlib>#include<cstr 阅读全文
posted @ 2012-09-04 13:49 有间博客 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目大意:一群牛要过河,河中有许多石墩,FJ为了锻炼牛的跳跃力,将其中的m个石墩摘掉,求所有情况中最大的跳跃最小值。思路:用一个变量sum累加,跳跃值mid通过二分来枚举。(1)如果可以摘除的石墩超过m的话,说明牛的跳跃值太大了,并不是最小跳跃值。(2)如果可以摘除的石墩刚好等于m的话,也不一定是最小的。(3)如果小于m的话,说明mid偏小。CODE:#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>usingnamespacestd;constintSIZ 阅读全文
posted @ 2012-09-04 10:47 有间博客 阅读(980) 评论(0) 推荐(0) 编辑