pat 1055 The World's Richest
来源:互联网 发布:微信恶搞踢出群软件 编辑:程序博客网 时间:2024/05/22 14:19
题意其实是求数组中的前k小的数。简单的方法大家都想得到,先排序,再取前k个,第二个不出意料的超时。要想以线性期望时间通过,应该得用随机选择算法来做。暂时先放着,以后再来解决。
代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>const int MAXN = 100005;struct human{char name[10];int age;int net_worth;}rich[MAXN];int cmp(const void *a,const void *b){human *x=(human *)a;human *y = (human *)b;if(x->net_worth == y->net_worth && x->age == y->age)return strcmp(x->name, y->name);if(x->net_worth == y->net_worth)return x->age - y->age;return y->net_worth - x->net_worth;}int main(){int nPeople, nQuery, nOutput, aMin, aMax;int i,j;freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin);scanf("%d%d",&nPeople, &nQuery);for(i = 0; i < nPeople; i++){scanf(" %s%d%d",rich[i].name, &rich[i].age, &rich[i].net_worth);}qsort(rich, nPeople, sizeof(rich[0]), cmp);// for(i = 0; i < nPeople; i++){// printf("%s %d %d\n",rich[i].name, rich[i].age, rich[i].net_worth);// // }int res;for(j = 0; j < nQuery; j++){scanf("%d%d%d",&nOutput, &aMin, &aMax);printf("Case \#%d:\n", j+1); res = 0;for(i = 0; i < nPeople && res < nOutput; i++){if(rich[i].age >= aMin && rich[i].age <= aMax){printf("%s %d %d\n",rich[i].name, rich[i].age, rich[i].net_worth);res++;}}if(res == 0)printf("None\n");}return 0;}
- pat 1055 The World's Richest
- PAT 1055 The World's Richest 暴力
- 【PAT 1055】The World's Richest 结构体排序&剪枝
- 浙大2013复试:PAT 1055 The World's Richest (25)
- Pat(Advanced Level)Practice--1055(The World's Richest)
- PAT (Advanced Level) Practise 1055 The World's Richest (25)
- PAT (Advanced Level) Practise 1055 The World's Richest (25)
- 【PAT】1055. The World's Richest (25)
- pat 1055. The World's Richest (25)
- pat 1055. The World's Richest (25)
- <PAT>1055. The World's Richest
- PAT 1055. The World's Richest
- PAT: 1055. The World's Richest (25)
- PAT 1055. The World's Richest (25)
- pat 1055. The World's Richest (25)
- PAT 1055. The World's Richest (25)
- PAT 1055. The World's Richest
- 【PAT】1055. The World's Richest
- src与href区别
- 电驴提示“该内容尚未提供权利证明,无法提供下载”之解决办法
- MIC编程(6 )——MIC对等模式配置方法
- hibernate中映射list
- 如何仅通过CSS实现多行文本超长自动省略号
- pat 1055 The World's Richest
- 求助!!!Simple_window.h在线等 ,用的code ::blocks
- Mantis时间显示错误(跟系统时间差8个小时)--解决办法
- C++异常处理(一)
- 【迟早得学】CSS3特效之文字阴影:text
- ADB不能正常使用
- POJ 2676—Sudoku
- 男人就要一直战斗
- 【原创】WP7中使用进度条——弥补几乎所有网络上与之相关的技术博文的内容缺陷