排序
来源:互联网 发布:特种设备考试软件 编辑:程序博客网 时间:2024/05/15 23:47
题目链接:http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=1§ionid=3&problemid=5
方法:排序,sort的应用
思路:这个题是浙大2005年的研究生机试题,对于研究生机试确实很变态了,因为这是里面最简单的一道题了吧,相比之下,南大的真是简单多了(虽然自己做的也很差....),思路简单,就是联系sort函数的使用以及cmp函数的写法,注意复杂的结构体的使用。
难点:sort的使用
#include<cstdio>#include<algorithm>#include<string.h>using namespace std;struct student{ char nummer[100]; int solve_num; int solve[30]; int sum;}ss[1000+100];bool cmp(student a,student b){ if(a.sum!=b.sum) return a.sum>b.sum; else if(a.sum == b.sum) return strcmp(a.nummer,b.nummer)<0;}int main(){ int stu,num,ave;//考生人数,考题数,要求平均成绩 int i,j; int score[110]={0}; while(~scanf("%d %d %d",&stu,&num,&ave)) { if(stu == 0) break; for(i = 1;i <= num;i++) scanf("%d",&score[i]); for(i = 0;i < stu;i++) { ss[i].sum = 0; scanf("%s",&ss[i].nummer); scanf("%d",&ss[i].solve_num); for(j = 0;j < ss[i].solve_num;j++) { scanf("%d",&ss[i].solve[j]); ss[i].sum = ss[i].sum+score[ss[i].solve[j]]; } } sort(ss,ss+stu,cmp); int counter = 0; for(i = 0;i < stu;i++) if(ss[i].sum>=ave) counter++; printf("%d\n",counter); for(i = 0;i < stu;i++) { if(ss[i].sum>=ave) { printf("%s",ss[i].nummer); printf(" "); printf("%d\n",ss[i].sum); } } }}
0 0
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- 排序
- MongoDB MapReduce学习笔记
- Java unicode 转中文
- TCP/IP,Http,Socket,XMPP的区别
- Java基础--基本类型
- 多线程二(Runnable接口)
- 排序
- UIViewController的presentedViewController,presentingViewController和parentViewController三个属性
- OC 中的关键词 大全(1)
- bzoj-1042 硬币购物
- codevs contest #1 3944 幻影阁的难题 树形DP+二分
- Google推荐的图片加载库Glide介绍
- Android自动化测试工具汇总
- rownum进行分页查询
- uva 11374 Airport Express(最短路)