2016华为机试

原创 2016年08月30日 20:48:08

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

一、说要循环输入,说的不是 Q1 5这些说的是5 7这种所以一定要while(cin>>a>>b)

二、输入查询的时候A B的值有可能A大于B,(但是题目中完全没说啊)所以要判断,然后交换两个值  if(numA>numB)swap(numA,numB);

三、不是最后在输出所有的测试用例,而是每次查询之后,哪怕后面还没输入完,就输出,查询一次输出一次
         

#include <iostream>

#include <vector>
using namespace std;


int main()
{
  int a,b;//学生、操作数
  char flag;
  int numA,numB;
  while(cin>>a>>b)
  {
     vector<int> vec(a);
     for(int i=0;i<a;i++)
      {
      cin>>vec[i];
     
     }  
        
    while(b--)
     {
      cin>>flag>>numA>>numB;
        if(flag=='Q')
        {
            if(numA>numB)
              swap(numA,numB);
            int max=0;
            for(int j=numA-1;j<numB;j++)
            {
                if(max<vec[j])
                    max=vec[j];
            }
            cout<<max<<endl;
        }


        if(flag=='U')
        {
            vec[numA-1]=numB;
        }


     }
        
    }
 
 return 0;
}

2016华为软件精英挑战赛总结

还记得当时做这个比赛的时候好多天都是满脑子想着这道题,除了后面没有意义的玄学调参,参加这种比赛还是很锻炼的。在比赛的过程中需要去学算法读论文这都是一种提高吧。这里写篇文章分析一下当时的思路同时也纪念当...
  • mmy1996
  • mmy1996
  • 2016年08月20日 19:52
  • 4276

华为软件精英挑战赛2016题解

代码:https://github.com/jinhang/2016_Huawei_SoftWareMatch 前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在...
  • youdianjinjin
  • youdianjinjin
  • 2016年06月28日 20:59
  • 8929

2016华为挑战赛_寻路_赛题分析

题意:在有向图中,给定起点和终点,求经过所有必经点集合的最短路径。(图中所有的点最多只能经过一次) 限制:点数 这是一个NP问题,是哈密顿回路和TSP问题的变种。 分析:对于这个问题最直接的想法就是...
  • luckyrass
  • luckyrass
  • 2016年04月12日 20:39
  • 1280

华为CodeCraft2016比赛的个人的算法优化

参加了2016华为CodeCraft比赛受到刺激很大, 感觉被那些牛人秒成渣渣. 要更努力啊!  我已经"光荣牺牲"了, 所以也就没什么心理负担了. 题目如下: 给定一个带权重的有向图G=(V,E),...
  • htjovi
  • htjovi
  • 2016年04月11日 21:56
  • 3123

Code Craft 2016初赛的一点体会

作者: 虾米小华华为CodeCraft软件精英挑战赛初赛于4月11日结束,我们的队伍有幸进入南京苏州赛区32强,顺利晋级将于5月中旬举行的复赛。...
  • fanfan_U
  • fanfan_U
  • 2016年06月08日 20:49
  • 950

2016年华为机试题

这题其实超级简单,可能是由于第一次参加机试,有点紧张,也没有什么经验,看到题干太长就没有耐心看下去。导致这题没做出来,现在整理的时候,其实挺简单的。 在二进制位图数据中,通常1是稀疏的。在位图压缩的算...
  • smallfish_love
  • smallfish_love
  • 2016年08月24日 10:55
  • 2006

2016华为机试-猴子分桃

#include using namespace std; const long N=2147483647; int main() { int m; while(cin>>m) { int...
  • u012577585
  • u012577585
  • 2015年08月31日 12:27
  • 429

2016华为软件精英挑战赛:初期算法设计方案及其代码实现

注:此算法存在诸多问题,无法解决规模比较大的案例。 算法设计步骤: 第一步:建图(邻接矩阵):运用官方提供的函数接口实现读取,图的建立自己实现。 1) 有一个特殊情况:根据说明3,如果顶点A到达B...
  • EbowTang
  • EbowTang
  • 2016年04月21日 20:52
  • 4455

2016华为校招机试题(软件开发)

今天华为的机试题明显变难了,而且和往年的不一样了,准备了前些年的题目,但是今年的做起来很不习惯。机试时可以上网,但是搜不到原题。 这个是考试规则 初级题目:...
  • qqyuanhao163
  • qqyuanhao163
  • 2015年09月21日 10:47
  • 3143

华为codecraft算法大赛---寻路

华为codecraft算法大赛—寻路前言最近实验室的师兄师姐们在热火朝天的笔试(都说难难难),我也要了些题来感受了一下,已然被虐的体无完肤。选择题考的内容涉及范围广,算法编程题对于没有刷题经验的我来说...
  • sb19931201
  • sb19931201
  • 2016年09月10日 20:46
  • 5297
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2016华为机试
举报原因:
原因补充:

(最多只允许输入30个字)