AOJ-AHU-OJ-676 投票
2014-03-28 17:47
351 查看
投票
Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MB
Description
在森林的烹饪比赛中共有Oldbear和其它动物共n名选手参与, Oldbear参赛的编号是1, 其它动物的编号是2~n.
森林的每个动物(除了参赛队员)都会选择自己喜欢的一个参赛选手(只能选一个)并给他投票, 投票结果是公开的, 所有参赛选手的票数都是已知的, 他想确定的是, 他是不是绝对的第一名(没有人的票数和他一样或者超过他). 如果不是的话, Oldbear打算策反一些给其它参赛选手的投票的动物转投给自己, Oldbear想知道他最少需要策反多少动物给自己投票.
策反:A有30票,B有1票,B策反A的一票之后,B有2票,A有29票。
同一个动物可以被策反多票。
Input
单组测试数据
第1行: 一个数n(2 <= n <= 200), n的含义如描述所述
第2行: n个用空格隔开的正整数, 其中第i个数表示编号为i的选手的票数, 其中各票数的取值区间为(0, 200];
Output
输出结果只有一行.
如果Oldbear已经是绝对的第一名, 请输出"Oldbear, The best!"(不用输出双引号), 否则请输出Oldbear最少需要策反的动物数.
Sample Input
Sample Output
——————————————————忧桑的分割线——————————————————
思路:真的是状态不好。该水题本以为能秒,结果活活WA了6、7次,之后再没有心情看别的题目了。悲哀!悲哀!
后来,原来第一次Submit的代码,只错了一个地方:
在编译的时候sizeof就起了作用,而且它是一个很复杂的运算符,初学者不要不明所以就使用。参见百度百科:
点击打开链接
除此之外还有一个用了sizeof()而且很神奇的地方
点击打开链接
代码如下:
Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 64 MB
Description
在森林的烹饪比赛中共有Oldbear和其它动物共n名选手参与, Oldbear参赛的编号是1, 其它动物的编号是2~n.
森林的每个动物(除了参赛队员)都会选择自己喜欢的一个参赛选手(只能选一个)并给他投票, 投票结果是公开的, 所有参赛选手的票数都是已知的, 他想确定的是, 他是不是绝对的第一名(没有人的票数和他一样或者超过他). 如果不是的话, Oldbear打算策反一些给其它参赛选手的投票的动物转投给自己, Oldbear想知道他最少需要策反多少动物给自己投票.
策反:A有30票,B有1票,B策反A的一票之后,B有2票,A有29票。
同一个动物可以被策反多票。
Input
单组测试数据
第1行: 一个数n(2 <= n <= 200), n的含义如描述所述
第2行: n个用空格隔开的正整数, 其中第i个数表示编号为i的选手的票数, 其中各票数的取值区间为(0, 200];
Output
输出结果只有一行.
如果Oldbear已经是绝对的第一名, 请输出"Oldbear, The best!"(不用输出双引号), 否则请输出Oldbear最少需要策反的动物数.
Sample Input
Original | Transformed |
3 1 3 3
Sample Output
Original | Transformed |
2
——————————————————忧桑的分割线——————————————————
思路:真的是状态不好。该水题本以为能秒,结果活活WA了6、7次,之后再没有心情看别的题目了。悲哀!悲哀!
后来,原来第一次Submit的代码,只错了一个地方:
Error:qsort(piao, n, sizeof(piao), cmp);知道错哪了吗?快排模板不是这样的!sizeof()你一定要小心!它并不是函数,而是一个运算符。
在编译的时候sizeof就起了作用,而且它是一个很复杂的运算符,初学者不要不明所以就使用。参见百度百科:
点击打开链接
除此之外还有一个用了sizeof()而且很神奇的地方
memset(vis, 0, sizeof(vis));总之快排模板千万别再记错。参见博客:
点击打开链接
代码如下:
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> int piao[210]; int cmp(const void *a, const void *b){ return *(int *)b - *(int *)a; } int main() { int n, i; scanf("%d", &n); n--; int bear; scanf("%d", &bear); int ans = bear; for(i = 0; i < n; i++) scanf("%d", piao+i);//注意,数组中保存的是Oldbear之外的动物 qsort(piao, n, sizeof(piao[0]), cmp); if(bear > piao[0]) puts("Oldbear, The best!"); else{ for(;;){//这是一个思维复杂度很低的方法,但是数据范围大了就不理想了 if(piao[0] >= bear){ bear++; piao[0]--; qsort(piao, n, sizeof(piao[0]), cmp);//最大值比Oldbear大,策反一票,之后重新排出票最多的动物 } else break; } printf("%d\n", bear - ans); } return 0; }
相关文章推荐
- AOJ-AHU-OJ-6 Hero in Maze
- AOJ-AHU-OJ-59 09年3月选拔赛第4题
- AOJ-AHU-OJ-189 最长递增子序列(模拟+二分查找)
- AOJ-AHU-OJ-664 彩灯高高挂
- AOJ-AHU-OJ-12 Box of Bricks
- AOJ-AHU-OJ-662 越来越快
- AOJ-AHU-OJ-497 最长起伏子序列
- AOJ-AHU-OJ-592 神奇的叶子
- AOJ-AHU-OJ-596 下一个K-number
- AOJ-AHU-OJ-668 the Kth number
- AOJ-AHU-OJ-13(POJ-1056) IMMEDIATE DECODABILITY
- AOJ-AHU-OJ-351 求最值之差「ST算法」
- AOJ-AHU-OJ-61 Lake Counting(递归)
- AOJ-AHU-OJ-443 寄存器数据转换
- AOJ-AHU-OJ-670 Tyrion的矩阵
- AOJ-AHU-OJ-675 定位赛
- AOJ-AHU-OJ-34 Euchre Results
- AOJ-AHU-OJ-351 求最值之差
- AOJ-AHU-OJ-64 数字三角形
- AOJ-AHU-OJ-675 定位赛