T01 查找特定元素的值

描述

在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置。

输入

第一行包含一个正整数n,表示序列中元素个数。1 <= n <= 10000。
第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过10000。
第三行包含一个整数x,为需要查找的特定值。x的绝对值不超过10000。

输出

若序列中存在x,输出x第一次出现的下标;否则输出-1。

样例输入

样例输出

样例

 #include<iostream>
#include<cstdio>
using namespace std;
int a[],n,m;
int main()
{
cin>>n;
for(int i=;i<=n;i++) scanf("%d",&a[i]);
cin>>m;
for(int i=;i<=n;i++)
if(a[i]==m)
{
cout<<i;return ;
}
cout<<-;
}

T02 输出最高分数的学生姓名

描述

输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。

输入

第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证最高分只有一位同学。

输出

获得最高分数同学的姓名。

样例输入

 lilei
hanmeimei
lily
lucy
jim
样例输出
hanmeimei

样例

不一样的解法:利用map有序存数的特点,慢2ms

 #include<iostream>
#include<cstdio>
#include<map>
#include<cstring>
using namespace std;
map<int ,string>mp;
int n;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
int m;
string a;
cin>>m>>a;
mp[m]=a;
}
map<int,string>::iterator it=mp.end();
it--;
cout<<it->second;
}

一般解法:0ms

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,maxx;
string ans;
int m;
string a;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>m>>a;
if(m>maxx)
{
ans=a;
maxx=m;
}
}
cout<<ans;
}

2

T03 不高兴的津津

描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入

包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出

包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

样例输入

样例输出

样例

 #include<iostream>
using namespace std;
int maxx,ans;
int main()
{
int a,b;
for(int i=;i<=;i++)
{
cin>>a>>b;
if(a+b>maxx)
{
maxx=a+b;
ans=i;
}
}
cout<<ans;
}

T04 谁拿了最多奖学金

描述

某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:

1)     院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;

2)     五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;

3)     成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得;

4)     西部奖学金,每人1000元,期末平均成绩高于85分(>85)的西部省份学生均可获得;

5)     班级贡献奖,每人850元,班级评议成绩高于80分(>80)的学生干部均可获得;

只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。

现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总有同学能满足获得奖学金的条件)。

输入

第一行是一个整数N(1 <= N <= 100),表示学生的总数。接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。每两个相邻数据项之间用一个空格分隔。

输出

包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。第三行是这N个学生获得的奖学金的总数。

样例输入

YaoLin   Y N
ChenRuiyi N Y
LiXin N N
ZhangQin Y N
样例输出
ChenRuiyi

样例

 #include<iostream>
using namespace std;
int maxx,sum;
string name,a;
int n,qimo,banji,lunwen;
char ganbu,xibu;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>a>>qimo>>banji>>ganbu>>xibu>>lunwen;
int k=;
if(qimo>&&lunwen) k+=;
if(qimo>&&banji>) k+=;
if(qimo>) k+=;
if(qimo>&&xibu=='Y') k+=;
if(banji>&&ganbu=='Y') k+=;
if(k>maxx)
{
maxx=k;
name=a;
}
sum+=k;
}
cout<<name<<endl<<maxx<<endl<<sum;
}

T05 最大值和最小值的差

描述

输出一个整数序列中最大的数和最小的数的差。

输入

第一行为M,表示整数个数,整数个数不会大于10000;
第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。

输出

输出M个数中最大值和最小值的差。

样例输入

样例输出

样例

方法1:读入的时候顺便记录最大最小值,时间6ms,内存464KB

 #include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,x;
int maxx=-,minn=;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
scanf("%d",&x);
maxx=max(maxx,x);
minn=min(minn,x);
}
cout<<maxx-minn;
}

1

方法2:读完之后,sort排序,时间12ms,内存464KB

 #include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,a[];
int main()
{
cin>>n;
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a+n+);
cout<<a[n]-a[];
}

2

noi题库(noi.openjudge.cn) 1.9编程基础之顺序查找T01——T05的更多相关文章

  1. noi题库(noi.openjudge.cn) 1.9编程基础之顺序查找T06——T15

    T06 笨小猴 描述 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大! 这种方法的具体描述如下:假设maxn是单词 ...

  2. noi题库(noi.openjudge.cn) 1.11编程基础之二分查找T01、02、04

    T01 查找最接近的元素 描述 在一个非降序列中,查找与给定值最接近的元素. 输入 第一行包含一个整数n,为非降序列长度.1 <= n <= 100000.第二行包含n个整数,为非降序列各 ...

  3. NOI题库刷题日志 (贪心篇题解)

    这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制:  1000ms  内存限制:  65536kB 描述 在一个平面上,如果有两个点( ...

  4. NOI题库 1768最大子矩阵 题解

    NOI题库 1768最大子矩阵  题解     总时间限制: 1000ms 内存限制: 65536kB   描述   已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大 ...

  5. NOI题库 09:图像旋转翻转变换

    NOI题库开始的题,也是略水,当然也是大水,所以彼此彼此 09:图像旋转翻转变换 总时间限制: 1000ms 内存限制: 65536kB 描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作 ...

  6. NOI题库-小学奥赛QwQ

    今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...

  7. noi题库(noi.openjudge.cn) 1.7编程基础之字符串T31——T35

    T31 字符串P型编码 描述 给定一个完全由数字字符('0','1','2',-,'9')构成的字符串str,请写出str的p型编码串.例如:字符串122344111可被描述为"1个1.2个 ...

  8. noi题库(noi.openjudge.cn) 1.5编程基础之循环控制T36——T45

    T36 计算多项式的值 描述 假定多项式的形式为xn+xn-1+-+x2+x+1,请计算给定单精度浮点数x和正整数n值的情况下这个多项式的值. 输入 输入仅一行,包括x和n,用单个空格隔开.x在flo ...

  9. noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30

    T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...

随机推荐

  1. 【转】简析 .NET Core 构成体系

    前文介绍了.NET Core 在整个.NET 平台所处的地位,以及与.NET Framework的关系(原文链接),本文将详细介绍.NET Core 框架的构成和各模块主要功能,以及如何实现跨平台. ...

  2. php中的cookie用法

    cookie和session都可以暂时保存在多个页面中使用的变量,但是它们有本质的差别. cookie存放在客户端浏览器中,session保存在服务器上.它们之间的联系是session ID一般保存在 ...

  3. Git中文版教程

    1. 起步 1.1 关于版本控制 1.2 Git 简史 1.3 Git 基础 1.4 命令行 1.5 安装 Git 1.6 初次运行 Git 前的配置 1.7 获取帮助 1.8 总结 2. Git 基 ...

  4. 0017 Java学习笔记-集合-集合一般:HashSet和HashMap

    几个概念 桶(bucket):hash表里可以存储元素的位置 hash冲突:equals()返回false的不相等对象的hashCode()值相等,意味着一个bucket要放几个元素 容量(capac ...

  5. iOS实现自定义进度条、拖动条效果,可多个

    项目用到的一个场景,需要设置一个周期内不同时间时的数值 比如要设置10秒内,每一秒的大小,通过10个拖动条来设置实现,只需拖动到想要的数值即可, 这里周期10秒和每个拖动条的最大值都是可以自己定义的. ...

  6. 使用bakefile编译C工程代码

    前言 最近有个想法,想把ineedle整体架构从头自己编写代码来实现一下,来加深对iNeedle系统的理解,同时加强Linux + C相关知识.由于iNeedle系统的庞大,只能是先把框架搭起来,根据 ...

  7. LINUX内核笔记:自旋锁

    目录 自旋锁作用与基本使用方法? 在SMP和UP上的不同表现? 自旋锁与上下文 使用spin_lock()后为什么不能睡眠? 强调:锁什么? 参考   1.自旋锁作用与基本使用方法? 与其他锁一样,自 ...

  8. BI软件搞不定业务管理报表的需求

    BI是商业智能的缩写,是可以帮助企业做出明智的业务经营决策的工具,其数据来源于各个业务系统,如ERP.CRM.SCM.进销存.HER.OA等. BI系统不同于传统的管理信息系统,他号称是一个整体应用的 ...

  9. jquery之hasClass

    看jquery的在线手册,hasClass的例子给的是这个 html部分: <div class="protected"></div><div> ...

  10. linux tar命令简介

    一.使用介绍 1.名词区分 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文 ...