华为2016年机试题: 最高分是多少

老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.

输入描述:
输入包括多组测试数据。
每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。
学生ID编号从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为‘Q‘的时候, 表示这是一条询问操作,他询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少
当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。
输出描述:
对于每一次询问操作,在一行里面输出最高成绩.
输入例子1:
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
输出例子1:
5
6
5
9代码1:
#include <iostream>
#include <algorithm>

 using namespace std;
int main()
{
 int N,M;
 int temp[30000];
 int temp1[5000];
 int temp2;
 char a1;
 int a2,a3;
 int count=0;

 cin>>N>>M;
 for(int i=0;i<N;i++)
 {
	 cin>>temp[i];
 }
    while(M)
	 {
		 cin>>a1;
		 cin>>a2;
		 cin>>a3;
		 if(a1==‘Q‘)
		 {
			 if(a2>a3){int tmp=a2;a2=a3;a3=tmp;}
			 temp2=temp[a2-1];
			 for(int j=a2-1;j<a3;j++)
			 {
				 if(temp[j]>=temp2)
				 {
					 temp2=temp[j];
				 }
			 }
			 cout << temp2 <<endl;
	//		 temp1[count]=temp2;
	//		 count++;
		 }
		 if(a1==‘U‘)
		 {
			 temp[a2-1]=a3;
		 }
		 M--;
	 }

return 0;
}

  

提示:


代码2:
#include <iostream>
#include <algorithm>

 using namespace std;
int main()
{
 int N,M;
 int temp[30000];
 int temp1[5000];
 int temp2;
 char a1;
 int a2,a3;
 int count=0;
 /*
 cin>>N>>M;
// cin>>M;
 for(int i=0;i<N;i++)
 {
	 cin>>temp[i];
 }
 */
 while(cin>>N>>M)
 {
	  for(int i=0;i<N;i++)
 {
	 cin>>temp[i];
 }
	 while(M)
	 {
		 cin>>a1;
		 cin>>a2;
		 cin>>a3;
		 if(a1==‘Q‘)
		 {
			 if(a2>a3){int tmp=a2;a2=a3;a3=tmp;}
			 temp2=temp[a2-1];
			 for(int j=a2-1;j<a3;j++)
			 {
				 if(temp[j]>=temp2)
				 {
					 temp2=temp[j];
				 }
			 }
			 cout << temp2 <<endl;
	//		 temp1[count]=temp2;
	//		 count++;
		 }
		 if(a1==‘U‘)
		 {
			 temp[a2-1]=a3;
		 }
		 M--;
	 }
 }
return 0;
}

  这条代码运行通过。

原因:https://www.nowcoder.com/discuss/276

 while(cin >> a >> b)//注意while处理多个case

第 一段代码只能处理一个case



原文地址:https://www.cnblogs.com/dafang/p/8780258.html

时间: 2024-10-08 14:14:49

华为2016年机试题: 最高分是多少的相关文章

华为的一道机试题--等式变换

华为的一道机试题 (http://blog.csdn.net/zombie_slicer/article/details/37346025) 第三题:等式变换 输入一个正整数X,在下面的等式左边的数字之间添加+号或者-号,使得等式成立. 1 2 3 4 5 6 7 8 9 = X 比如: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编写程序,统计满足输入整数的所有整数个数. 输入:       正整数,等式右边的数字 输出:       使该等式成立的个数 样

2017年华为优招机试题_平安果_编程题

题目描述 简要描述: 给定一个M行N列的矩阵(M*N个格子),每个格子中放着一定数量的平安果. 你从左上角的格子开始,只能向下或向右走,目的地是右下角的格子. 每走过一个格子,就把格子上的平安果都收集起来.求你最多能收集到多少平安果. 注意:当经过一个格子时,需要要一次性把格子里的平安果都拿走. 限制条件:1 < N, M <= 50:每个格子里的平安果数量是0到1000(包含0和1000). 输入描述: 输入包括两行: 第一行为矩阵的行数M和列数N 第二行为一个M*N的矩阵,矩阵的数字代表平

华为2014机试题(一)

过几天就要进行华为的机试了,今儿临时抱抱佛脚,在网上找到2014届华为校招的机试题,琢磨了一会儿,贴出来记录下. 首先感谢一下Hackbuteer提供的题目:http://blog.csdn.net/hackbuteer1/article/details/11132567 对于第一题,字符过滤.最简单也是最直接的就是HASH.题目规定了输入序列只能为小写字符'a~z'.因此直接开辟一个大小为26的数组用于记录当前字符是否已经出现即可. 需要注意的问题: 1. hash数组记得初始化 2. pOu

2015年华为校招机试题和代码实现(分解字符串,拼音转数字,去除重复字符并排序,等式变换)

再来一套2015年的华为机试题. 第一题(60分): 按要求分解字符串,输入两个数M,N:M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0.例如:输入2,8, "abc" ,"123456789",则输出为"abc00000","12345678","90000000" 分析思路: 容易题 1.获得字符串的长度length后,判断与要输出位数N的大小,大于N的话,直接printf前N位字符,然

华为2016机试题目01

牛客网做的华为2016机试题目,新手,代码较乱,一起讨论. 题目要求如下: 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括多组测试数据. 每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目. 学生ID编号从1编到N. 第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩 接下来又M行,每一行有一

2014春季华为实习生机试试题及经验

前两天参加了华为的机试,由于这两天有点其他事情,就没来的及总结,趁着晚上空闲小小的总结下,希望能能为准备在华为工作的人提供点经验....... 华为机试分为三道题,均是编程题,题的难度依次增加,由于当时做题的时候因为机器的缘故题并没有全部完成,第二道题也没认真看,就记得不是太清,为了不误人子弟,在这里就给大家总结第一道和第三道吧,如有总结的不到处,还希望谅解..... 第一道题:大概意思是:输入含有7个字符的字符串,或者输入7个字符,在第一个和最后一个字符保持不变的情况下,对中间5个字符按ASC

华为校招上机笔试试题(A卷)——java实现

华为校招上机笔试试题(A卷)--java实现 编程题:A1.最小长方形, A2. 判断一个数字中是否包含两个相同的子串, A3. 取石子游戏. A1.最小长方形 java代码: import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class MinRectangle { public static void main(String arg[]){ List<Integer> ld

ASPNET服务端控件练习(一个机试题)

简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, string isG) { List<Web.Model.Student> lt = new List<Model.Student>(); string sql = "select * from SC_Student where studentName like @n and [e

Java基础机试题

package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert {        static void exitContinue(){                while (true){            System.out.print("你想继续吗?(y/n)");            Scanner sc = new Scanner(Sys