1. 评学习小标兵

【问题描述】

东东所在的班级有 N 名同学,期末考试进行了数学、语文、英语、地理四门功课的测试。班主任要将这 N 名学生中总分前三名定为本学期的“学习小标兵”。现在给出这N 名学生的姓名和各科成绩,请你编程找到总分前三名,并依次输出他们的姓名。所给数据不会有总分相同的情况(使用快速排序完成)。

【输入格式】

输入包含 N+1 行,第一行仅有一个正整数 N (N≤40),表示东东班里学生的总数,接下来的 N 行,每行描述一个学生的考试信息,依次为姓名、数学成绩、语文成绩、英语成绩与地理成绩,两两之间用一个空格分隔。注意:姓名(不会同名)都用小写字母表示(不超过 10 个字母),成绩全都是不超过 200 的非负整数。

【输出格式】

输出包含三行,每行仅包含一个学生的姓名,依次为第一名到第三名学生的姓名。

【样例输入】

4

jing 98 90 87 74

ming 96 92 85 97

jun 95 78 56 91

hong 95 100 85 78

【样例输出】

ming

hong

jing

#include<iostream>
using namespace std;
struct p {
char name[];
int math;
int chinese;
int eglish;
int geo;
int sum;
};
p a[];
void quick_sort(int left,int right) {
if(left >= right) return;
int i = left;
int j = right;
p x = a[left];
while(i < j) {
while(i < j && a[j].sum < x.sum)
j--;
a[i] = a[j];
while(i < j && a[i].sum > x.sum)
i++;
a[j] = a[i];
}
a[i] = x;
quick_sort(left,i-);
quick_sort(i+,right);
}
int main() {
int n,f=,s=,i,j;
cin>>n;
for(i=; i<n; i++) {
cin>>a[i].name>>a[i].math>>a[i].chinese>>a[i].eglish>>a[i].geo;
a[i].sum = a[i].math+a[i].chinese+a[i].eglish+a[i].geo;
}
quick_sort(,n-);
for(i=; i<; i++)
cout<<a[i].name<<endl; return ;
}

2.挑选宇宙总统

【问题描述】

地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统(使用快速排序和归并排序完成)。

【输入格式】

第一行为一个整数n,代表竞选总统的人数。

接下来有n行,分别为第一个候选人到第n个候选人的票数。

【输出格式】

共两行,第一行是一个整数m,为当上总统的人的号数。

第二行是当上总统的人的选票。

说明:票数小于10000位数字。n<=20

【样例输入】

5

98765

12365

87954

1022356

985678

【样例输出】

4

1022356

#include<iostream>
#include<cstring>
#include<algorithm>
const int maxn=;
using namespace std;
struct node{
string s;
int id;
} a[maxn];
bool cmp(node x,node y){
if(x.s.size()==y.s.size())
return x.s>y.s;
else return x.s.size()>y.s.size();
}
int main(){
int n;
cin >> n;
for(int i=;i<=n;++i)
cin>>a[i].s,a[i].id=i;
sort(a+,a++n,cmp);
cout<<a[].id<<endl<<a[].s;
return ;
}

1.排序算法

【问题描述】

快速排序和归并排序算法是信息学竞赛的必备算法。对于快速排序和归并排序算法还不是很熟练的同学需要多多练习,掌握后独立完成。

【输入格式】

输入文件sort.in的第一行为一个正整数N,(1 ≤ N ≤ 100000)

第二行包含N个空格隔开的正整数,为你需要进行排序的数,每个数据保证不超过100000000。

【输出格式】

输出文件sort.out将给定的N个数从大到小输出,数之间使用空格隔开,行末换行并且没有空格。

【样例输入】

5

4 2 4 5 1

【样例输出】

5 4 4 2 1

#include <fstream>
using namespace std;
ifstream cin("sort.in");
ofstream cout("sort.out");
int a[],n;
void quick_sort(int left,int right){
if(left >= right) return;
int i = left;
int j = right;
int x = a[left];
while(i < j){
while(i < j && x <= a[j]) j--;
a[i] = a[j];
while(i < j && x >= a[i]) i++;
a[j] = a[i];
}
a[i] = x;
quick_sort(left,i-);
quick_sort(i+,right);
}
int main(){
cin >> n;
for(int i = ;i < n;i++){
cin >> a[i];
}
quick_sort(,n-);
for(int i = n-;i >=;i--){
cout << a[i] << " ";
}
cin.close();
cout.close();
return ;
}

noip第20课作业的更多相关文章

  1. noip第5课作业

    1.     计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...

  2. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  3. noip第28课作业

    分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...

  4. noip第25课作业

    1.   求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...

  5. noip第22课作业

    1.   数字分解 [问题描述] 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和,当n等于5时有6种拆分方法: 5=1+1+1+1+1 5=1+1+1+2 5=1+1+3 5=1+2+ ...

  6. noip第21课作业

    1. 遍历二叉树 [问题描述] 以先序的方式建立一棵二叉树,空结点用‘#’号表示,例如:abd###ce##f##,将建立一棵如下的二叉树: 输出其中序序列和后序序列,其中总结点个数不超过100. 输 ...

  7. noip第18课作业

    1. 银行取款 [题目描述] 在现代文明社会中,大家在诸如银行办理业务.车站买票等活动时都很文明没有插队的现象,本着“先来先服务”的规矩. 新年马上到了,明明的爸爸打算上银行去取点钱,带着一向表现很好 ...

  8. noip第12课作业

    1.    输出低于班级平均分的学生信息 [问题描述] 输入N个学生的姓名和语文.数学的得分,求平均分低于班级平均分的学生,将其信息全部输出.分数相同的按输入先后输出. 输入格式:第1行,有一个整数N ...

  9. noip第6课作业

    1.    数据统计 [问题描述] 输入N个整数,求出它们的最小值.最大值和平均值(保留3位小数).输入保证这些数都是不超过1000的整数.(1<=N<=1000) [样例输入] 8 2 ...

随机推荐

  1. IIS7中的站点、应用程序和虚拟目录详细介绍

    IIS7中的站点.应用程序和虚拟目录详细介绍 这里说的不是如何解决路径重写或者如何配置的问题,而是阐述一下站点(site),应用程序(application)和虚拟目录 (virtual direct ...

  2. Linux下网络排查之ping|traceroute|mtr工具(zz)

      1.ping ping使用了ICMP回送请求和回送应答报文.ping工具发出去的数据包没有通过tcp/udp协议,但是要经过ip协议.ping命令计算的时间是数据包的往返总时间. ping命令常用 ...

  3. iOS.Library.Architecture

    在用file查看library的architechture时有以下输出: $ file WebPWebP: Mach-O universal binary with 3 architecturesWe ...

  4. BZOJ2730或洛谷3225 [HNOI2012]矿场搭建

    BZOJ原题链接 洛谷原题链接 显然在一个点双连通分量里,无论是哪一个挖煤点倒塌,其余挖煤点就可以互相到达,而对于一个点双连通分量来说,与外界的联系全看割点,所以我们先用\(tarjan\)求出点双连 ...

  5. unbutton 内部title label多行显示

    dateBtn1.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; [dateBtn1 setTitle: @第一行\n第二行" f ...

  6. TCHAR函数查询

    https://blog.csdn.net/is2120/article/details/27542927

  7. Laravel Many to Many Polymorphic Relationship

    Many to many Polymorphic relationship is also a little bit complicated to understand. For example, i ...

  8. Linq去重 不用实现IEqualityComparer接口的方法超级简单

    RskFactorRelation.Instance.GetCache<RskFactorRelation>(true).Where(x => !string.IsNullOrEmp ...

  9. 【UI测试】--美观与协调性

  10. php与html代码的若干转换

    以前懵懵懂懂的看过,没怎么在意,现在总结一下 一般来说,像留言板之类的content,用这样的就够了: $content=addslashes(htmlspecialchars($_POST['con ...