• 赛码-格子游戏


    题目描述

    有n个格子,从左到右放成一排,编号为1-n。

    共有m次操作,有3种操作类型:

    1.修改一个格子的权值,

    2.求连续一段格子权值和,

    3.求连续一段格子的最大值。

    对于每个2、3操作输出你所求出的结果。

    输入

     

    输入第一行两个整数,n表示格子个数,m表示操作次数,n和m中间用空格隔开;

    接下来输入n行,每行一个整数表示一个格子的权值

    接下来输入m行,每行有三个整数,中间用空格隔开;第一个是选择的操作类型1-3,第二和第三个整数是操作格子的编号。

    样例输入

     

    3 3

    7

    8

    9

    2 1 3

    3 1 3

    2 1 2

    输出

     

    若执行1操作则无输出

    若执行2和3操作则输出一个整数

    样例输出

     

    24

    9

    15

    时间限制C/C++语言:2000MS其它语言:4000MS
    内存限制C/C++语言:65536KB其它语言:589824KB

    题目中没有提到操作1是咋样的输入格式,个人猜测:如1 2 6;将第2个格子的权值改为6。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace::std;
    
    int a[1000],b[1000][3];
    
    void change(int n)
    {
        int num = b[n][2];
        a[num] = b[n][3];
    }
    int sum(int n)
    {
        int num=0;
        for(int i = b[n][2];i<=b[n][3];i++)
        {
            num = num+a[i];
        }
        return num;
    }
    int max(int n)
    {
        int m=a[b[n][2]];
        for(int i=b[n][2];i<=b[n][3];i++)
        {
            if(m<a[i])
            {
                m = a[i];
            }
        }
        return m;
        
    }
    int main()
    {
        int n,m;
        scanf("%d %d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=3;j++)
            {
                scanf("%d",&b[i][j]);
            }
        }
        for(int i=1;i<=m;i++)
        {
            switch(b[i][1])
            {
            case 1:
                change(i);
                break;
    
            case 2:
                printf("%d
    ",sum(i));
                break;
    
            case 3:
                printf("%d
    ",max(i));
                break;
            }
        }
        return 0;
    }

    题目链接

  • 相关阅读:
    4.使用webpack-dev-server工具实现自动打包编译的功能
    3.使用webpack配置文件webpack.confg.js配置打包文件的入口和出口
    2.webpack最基本的使用方式
    启动nginx 80端口被占用:tcp 0 0 127.0.0.1:80 127.0.0.1:34932 TIME_WAIT
    template标签就相当于React中的fragment
    初窥AST
    npm 中的 --
    你不知道的环境变量(转)
    非捕获分组 正向预查 与反向预查
    border-radius 如何计算
  • 原文地址:https://www.cnblogs.com/hdyss/p/10730595.html
Copyright © 2020-2023  润新知