华为笔试——C++最高分问题
题目介绍:现在输入一组数据,写入学生的考试分数。已知学生数为N,学生编号为1到N,且0<N<=30000,每个学生都有一个分数;操作数为M且0<M<5000。输入第一行为N M,接下来是1行N列数据代表学生的初试分数,接下来是M行操作数据。已知操作有两种,分为Q和U。一次操作的格式为 C A B,当C=Q时输出A到B(包括A和B)的学生最高分,当C=U时将ID为A的学生的分数写入为B。
例:
输入:
5 7
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 4 5
U 2 9
Q 1 5
输出:
5
6
5
9
分析:一开始是设想char一个m行3列的数组,但是考虑到ID和分数都可能不是个位数因此还是分别设置好了。查询指令中A不一定比B小这一点也要考虑到。
#include <iostream>
using namespace std;
int main()
{
int m, n;
int result = ;
while (cin >> n >> m)
{
int *score = new int[n];
for (int i = ; i < n; i++)
{
cin >> score[i];
}
char *cha = new char[m];
int *one = new int[m];
int *two = new int[m];
for (int i = ; i < m; i++)
{
cin >> cha[i] >> one[i] >> two[i];
}
for (int i = ; i < m; i++)
{
if (cha[i] == 'Q')
{
if (two[i] > one[i])
{
for (int j = one[i] - ; j <= two[i] - ; j++)
{
if (score[j] >= result)
{
result = score[j];
}
}
}
else {
for (int j = two[i] - ; j <= one[i] - ; j++)
{
if (score[j] >= result)
{
result = score[j];
}
}
}
cout << result << endl;
result = ;
}
if (cha[i] == 'U')
{
score[one[i] - ] = two[i];
}
}
}
}
结果:
华为笔试——C++最高分问题的更多相关文章
- 华为笔试——C++括号匹配
题目:括号匹配 题目来源:https://blog.csdn.net/lizi_stdio/article/details/76618908 题目介绍:输入一个字符串,里面可能包含“()”.“ [ ...
- 27号华为笔试(三道ac两道)
三道题目case:100,100,0: 三个题目: 前两个都全部ac了,第三题没时间: 记录一下大概的思路: 第一题 主要通过Java中的字符串处理函数:然后控制字符串输入格式: 卡bug的点: 1: ...
- 华为笔试——C++平安果dp算法
题目:平安果 题目介绍:给出一个m*n的格子,每个格子里有一定数量的平安果,现在要求从左上角顶点(1,1)出发,每次走一格并拿走那一格的所有平安果,且只能向下或向右前进,最终到达右下角顶点(m,n), ...
- 华为笔试——C++字符串四则运算的实现
题目:字符串四则运算的实现 有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值.四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9),运算 ...
- 华为笔试——C++的int型数字位排序
题目:int型数字位排序 题目介绍:输入int 型整数,按照从右至左的顺序,返回不含重复数字的新整数. 例: 输入: 99824270 输出: 072489 分析:乍一看很简单,但是很容易忽略int ...
- 华为笔试——C++特定位数比较
题目:特定位数比较 题目介绍:输入两行数据,第一行为 m 个正整数,以空格隔开:第二行为正整数 n ,且 n<= m:要求对第一行的数字的后三位大小进行排序,输出排行 n 的数字,其中,若不满三 ...
- 华为笔试——C++进制转换
题目:2-62进制转换 题目介绍:输入一个n1 进制的整数(包括负数),将其转换成n2 进制,其中n1 .n2 的范围是 [ 2,62 ] .每个数字的范围是0-9.a-z.A-Z.不用考虑非法输入. ...
- 华为笔试——C++消重输出
题目:消重输出 题目介绍: 输入一个正整数,给出消除重复数字以后最大的整数,注意需要考虑长整数. 例: 输入:988274320 输出:9874320 题目分析:这个结果的实现需要两个步骤:消重和排序 ...
- 华为笔试——C++转换字符串问题
题目:转换字符串 题目介绍: 将输入字符串中下标为偶数的字符连成一个新的字符串输出,需要注意两点: 1. 如果输入字符串的长度超过20,则转换失败,返回“ERROR!”字符串: 2. 输入字符串只能由 ...
随机推荐
- 20155314 2016-2017-2 《Java程序设计》第3周学习总结
20155314 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 学习目标 区分基本类型与类类型 理解对象的生成与引用的关系 掌握String类和数组 理解封 ...
- 20145203 实验五 Java网络编程及安全
20145203 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验要求 1.基于Java Socket实现安全传输 2 ...
- hive遇到的问题以及解决办法
hive java.lang.ClassNotFoundException: Class org.apache.hive.hcatalog.data.JsonSerDe not found hadoo ...
- [转]DirectX and .NET[英]
With the DirectX SDK (June 2010) release and the addition of support for Visual Studio 2010, I’ve be ...
- 使用CSS3的“transition ”属性控制长宽度的缓慢变化
有时候我们可能会想要改变某个资源信息的长宽度,比如改变某个div的宽度,而且需要让这个宽度缓慢改变,而不是突然就改变了.这时候你可能会想到使用jquery的animate()函数,不过这个方法既得引用 ...
- HDU 1114(没有变形的完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000 MS (Java/Others ...
- mysql/mariadb学习过程中出现的问题与解决
mysql> insert into student values(,,'CS'); ERROR (): Duplicate entry ' for key 'PRIMARY'(duplecat ...
- Bootstrap02
Bootstrap02_内容概述 一.排版样式 (下面示例*代表class) 1.段落突出 *=lead <p>山外有山,<span class="lead"& ...
- VS2015 安装XAN
How to install XNA in Visual Studio 2015 (Preview) How can I install the templates and the the frame ...
- [arc072F]Dam-[单调队列]
Description 传送门 Solution 首先我们肯定不能那么耿直地直接把水混合起来吧..不然分分钟完球. 那么怎么找到最优解呢?假如我们把水的体积和温度按顺序插入队列,这时我们插入第i天的水 ...