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

老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.
输入描述:
输入包括多组测试数据。
每组输入第一行是两个正整数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。

输出描述:
对于每一次询问操作,在一行里面输出最高成绩.
输入例子:
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

#include<iostream>
using namespace std;

int main()
{
  int N,M;
  char c;
  while(cin>>N>>M)
  {
     int *p=new int[N+1];
     p[0]=-1;
     int max=-1;
     int a,b,i;
     for(i=1;i<N+1;i++)
         cin>>p[i];
     cin>>c;
    cin>>a>>b;
     if(c==‘U‘)
         p[a]=b;
     if(c==‘Q‘)
     {
         for(i=a;i<=b;i++)
              max=p[i]>max?p[i]:max;
     cout<<max<<endl;
     }
return 0;
  }
}

我一开始把cin>>c>>a>>b写在一行了,怎么都输出不了结果。。。

时间: 2024-10-10 15:25:34

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

华为上机试题

一.题目描述:通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉.比如字符串“abacacde”过滤结果为“abcde”. public String stringFilter(String str) { Map<String, Integer> map = new LinkedHashMap<String, Integer>(); String s = ""; for(int i=0

2014华为上机试题

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2:另外数组的长度不超过50 #include<stdio.h> main() { intnum[50]={0}; inti,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"

华为上机练习题--统计各小写字符出现的次数

题目: 手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出.提示可以用map 例子:输入:aaabbbccc 输出:a 3 b 3 c 3 分析: 看到后面的提示,简直就是不用动脑,直接简单粗暴的顺势而上 直接上代码: import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; public class TestCharAcount

华为历年试题(掷骰子游戏 7)

问题描述: 在掷骰子游戏中,会根据所掷数字在地图中前进几步,前进完成后需要根据当前地图位置所示的障碍进行相应操作,其中障碍表示: 1)  9:无障碍 2)  1:停掷一轮,即下轮所掷数字无效: 3)  2:后退两步,如果已经到起点不再后退: 4)  3:奖励前进一步 如果在游戏过程中,已经走到地图终点,则游戏结束.根据输入的地图数组,和5个骰子数的数组,返回最终玩家前进了多少步. 要求实现函数: void dice(int map_len, int* map, int* dice_val, in

华为历年试题(10约瑟夫环)

约瑟夫环形问题 有30人将其编号,从头开始1,2,3数数,每到3将其删除,一共删去15个数.输出被删去的15个数 #include<iostream> using namespace std; struct LinkList { int val; LinkList* next; LinkList(int a):val(a),next(NULL){} }; LinkList *CreatList(int n) { LinkList *p = new LinkList(1); LinkList *

华为上机练习题--计算表达式

题目: 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形. 例如:  输入:3+8×2/9-2 输出:2 函数原型 public int getMyRet(String str) 分析: 这个题目略显高端啊, 像我这种非专业的自学者,还真没有学过编译原理之类的课程, 要自己实现一个这种小型的编译器是非常困难啊, 所幸的是这个题目是用java来实现的, 而我本身也曾经看到过用java来实现这类的问题, 这类问题有一种方法就是实现类编译器功能的函数, 这个我是驾驭不

华为上机练习题--重复字符过滤

题目: 请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉. 比如字符串"abacacde"过滤结果为"abcde". 示例 输入:"deefd"        输出:"def" 输入:"afafafaf"     输出:"af" 输入:"pppppppp"     输出:"p" 分析: 看到这种类似的相同字符过滤,使

华为上机练习题--括号匹配检测

题目: 输入一串字符串,其中有普通的字符与括号组成(包括'('.')'.'[',']'),要求验证括号是否匹配,如果匹配则输出0.否则输出1. Smple input:dfa(sdf)df[dfds(dfd)]    Smple outPut:0 分析: 类似于括号字符匹配这类的问题, 我们可以模拟栈的操作来进行验证, 这样问题就简单了, 就是栈的操作 代码如下: package com.wenj.test; import java.util.ArrayList; import java.uti

华为上机题汇总(六)

华为上机题汇总(六) 注:编译环境为Visual Studio 2012,答案仅供参考. 目录 华为上机题汇总六 目录 第二十六题 第二十七题 第二十八题 第二十九题 第三十题 第二十六题 26.一副牌中发五张扑克牌给你:让你判断数字的组成: 有以下几种情况: 1:四条:即四张一样数值的牌(牌均不论花色)2:三条带 一对 3:三条带两张不相同数值的牌 4:两对 5:顺子 包括 10,J,Q,K,A 6:什么都不是 7:只有一对 #include <iostream> #include <