• 洛谷 P2356 弹珠游戏


    题目链接:https://www.luogu.org/problemnew/show/P2356

    题目

    题目描述

    MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏——超级弹珠。

    游戏的内容是:在一个 n*n 的矩阵里,有若干个敌人,你的弹珠可以摧毁敌人,但只

    能攻击你所在的行、列里的所有敌人,然后你就可以获得他们的分数之和,现在请你选择

    一个你的位置,使得能击杀的敌人最多,注意,你不能和敌人在一个地方

    输入输出格式

    输入格式:

    输入有两行,第一行一个正整数 n,接下来 n 行,每行 n 列,如果有敌人则为一个正整数,否则为 0

    输出格式:

    输出共一行,最多分数,如果连你的容身之地都没有,请输出“Bad Game!”

    输入输出样例

    输入样例#1: 复制
    4
    1 1 1 0
    1 1 1 1
    1 1 1 1
    0 1 1 1
    输出样例#1: 复制
    6

    说明

    送分题,客官请拿好,(*^__^*) 嘻嘻……

    【数据范围】

    对于 30%的数据,1≤n≤10

    对于 100%的数据,1≤n≤1000,保证容身之地的数量小于 10000

    解析

    读入时利用queue存储可以进攻的位置,之后对于每个点利用while向四个方向加上每个点权值即可。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int mp[1003][1003];
    queue<int> xx,yy;
    int n;
    int MAXN=0;
    int flag=0;
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cin>>mp[i][j];
                if(mp[i][j]==0)
                {
                    xx.push(i);
                    yy.push(j);
                    flag=1;
                }
            }
        }
        if(flag==0) cout<<"Bad Game!"<<endl;
        while(xx.empty()!=true&&yy.empty()!=true)
        {
            int sum=0;
            int nowx=xx.front();
            int nowy=yy.front();
            xx.pop();
            yy.pop();
            int right=nowx;
            int left=nowx;
            int up=nowy;
            int down=nowy;
            while(right<=n)
            {
                right++;
                sum=sum+mp[right][nowy];
            }
            while(left>=1)
            {
                left--;
                sum=sum+mp[left][nowy];
            }
            while(up<=n)
            {
                up++;
                sum=sum+mp[nowx][up];
            }
            while(down>=1)
            {
                down--;
                sum=sum+mp[nowx][down];
            }
            MAXN=max(sum,MAXN);
            sum=0;
        }
        cout<<MAXN<<endl;
    }
  • 相关阅读:
    18周个人总结
    十六周个人总结
    排球积分规则程序
    十四周软件工程总结
    本周总结
    排球积分规则
    我的计算机生涯
    排球比赛记分员
    《怎样成为一个高手》观后感
    冲刺作业
  • 原文地址:https://www.cnblogs.com/KyleDeng/p/9245175.html
Copyright © 2020-2023  润新知