• 华为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




  • 相关阅读:
    通过wireshark抓包来讲解HTTP中Connection: keep-alive头部的作用
    spring cloud连载第三篇补充之Zuul
    Redis管理各类型存储数据命令
    Redis管理key命令
    Redis命令
    Redis数据类型
    Redis配置文件
    Redis安装
    Redis简介
    SpringBoot项目报错Cannot determine embedded database driver class for database type NONE
  • 原文地址:https://www.cnblogs.com/dafang/p/8780258.html
Copyright © 2020-2023  润新知