首页 > 其他分享 >7-402 纵横

7-402 纵横

时间:2025-01-05 09:32:04浏览次数:3  
标签:位置 int monsterCount ++ maxMonsters grid 402 纵横

莫大侠练成纵横剑法,走上了杀怪路,每次仅出一招。这次,他遇到了一个正方形区域,由n×n个格子构成,每个格子(行号、列号都从1开始编号)中有若干个怪。莫大侠施展幻影步,抢占了一个格子,使出绝招“横扫四方”,就把他上、下、左、右四个直线方向区域内的怪都灭了(包括抢占点的怪)。请帮他算算他抢占哪个位置使出绝招“横扫四方”能杀掉最多的怪。如果有多个位置都能杀最多的怪,优先选择按行优先最靠前的位置。例如样例中位置(1,2)、(1,3),(3,2),(3,3)都能杀5个怪,则优先选择位置(1,2)。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试,第一行输入n(3≤n≤20),第二行开始的n行输入n×n个格子中的怪数(非负整数)。

输出格式:

对于每组测试数据输出一行,包含三个整数,分别表示莫大侠抢占点的行号和列号及所杀的最大怪数,数据之间留一个空格。

输入样例:

3
3
1 1 1
0 1 1
1 1 1
3
3 2 1
4 6 5
8 7 9
3
24 5 89
13 59 15
85 3 27

输出样例:

1 2 5
3 2 32
3 3 219

来源:

[1] 黄龙军, 等. 大学生程序设计竞赛入门—C/C++程序设计(微课视频版), 北京:清华大学出版社, 2020.11. ISBN:9787302564744
[2] 黄龙军.程序设计竞赛入门(Python版),北京:清华大学出版社,2021.4. ISBN:9787302571230

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>

#define MAX_N 20

int main() {
    int T;
    scanf("%d", &T);
    
    while (T--) {
        int n;
        scanf("%d", &n);
        
        int grid[MAX_N][MAX_N];
        
        // 读入怪物数量
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                scanf("%d", &grid[i][j]);
            }
        }
        
        int maxMonsters = -1;
        int bestRow = 0, bestCol = 0;
        
        // 遍历所有可能的位置
        for (int r = 0; r < n; r++) {
            for (int c = 0; c < n; c++) {
                int monsterCount = 0;
                
                // 计算当前点 (r, c) 能杀掉的怪物数
                // 向上
                for (int i = r; i >= 0; i--) {
                    monsterCount += grid[i][c];
                }
                
                // 向下
                for (int i = r; i < n; i++) {
                    monsterCount += grid[i][c];
                }
                
                // 向左
                for (int j = c; j >= 0; j--) {
                    monsterCount += grid[r][j];
                }
                
                // 向右
                for (int j = c; j < n; j++) {
                    monsterCount += grid[r][j];
                }
                
                // 去掉重复计算的中心点 (r, c)
                monsterCount -= 3 * grid[r][c];
                
                // 更新最大怪物数及其位置
                if (monsterCount > maxMonsters) {
                    maxMonsters = monsterCount;
                    bestRow = r + 1; // 转换为1-based索引
                    bestCol = c + 1; // 转换为1-based索引
                }
            }
        }
        
        printf("%d %d %d\n", bestRow, bestCol, maxMonsters);
    }
    
    return 0;
}

标签:位置,int,monsterCount,++,maxMonsters,grid,402,纵横
From: https://blog.csdn.net/weixin_73820357/article/details/144938944

相关文章

  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第14周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第14周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上......
  • 402 [CF 17E] Palisection
    //402[CF17E]Palisection.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/934给你一个字符串s,字符串由小写字母组成,现在你需要求出s中有多少对有公共部分的回文子串,请输出答案mod51123987。输入格式......
  • 402、基于51单片机的洗衣机仿真设计(数码管,2模式,中断)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括需要完整的资料可以点击下面的名片,找我要资源压缩包的百度网......
  • Solution - Luogu P11402 [Code+#8 初赛] 图
    首先通过手玩,发现对于小的\(n\)都有\(m_{\max}\len\),于是直接猜测这个结论并尝试证明。首先对于\(n\le4\)的情况,首先可以直接通过手玩知道\(m_{\max}\len\)。对于\(n>4\)的情况,考虑\(n\)从小到大证明。若\(m>n\),则\(\sum\limits_{i=1}^n\operatorname{de......
  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第13周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第13周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上......
  • 20222402 2024-2025-2 《网络与系统攻防技术》实验八实验报告
    1.实验内容1.1本周学习内容Web前端:负责开发用户所看到的内容。(1)HTML(2)JavaScript(Js)(3)CSS(4)Web前端框架Web后端:主要使用各种库,API,Web服务等技术搭建后端应用体系,确保各种Web服务接口之间的正确通信。比如处理前端用户发起的请求,各种业务逻辑的操作,最后与数据......
  • 【LeetCode: 402. 移掉 K 位数字 + 单调栈】
    ......
  • 20222402 2024-2025-2 《网络与系统攻防技术》实验七实验报告
    1.实验内容1.1本周学习内容网络攻击基本模式①截获嗅探监听②篡改数据包篡改③中断拒绝服务④伪造欺骗IP源地址欺骗:伪造具有虚假源地址的IP数据包进行发送√目的:隐藏攻击者身份、假冒其他计算机通过身份验证1.2实验内容及要求本实践的目标理解常用网络欺诈背......
  • # 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第12周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第12周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上......
  • CCIT4020 Introduction to Computer
     CCIT4020IntroductiontoComputerProgrammingAssignment3–SectionCGeneralguidelines:Useconciseanddirecttechniques/programcodeswelearninourcourse.Uselessorover-complicatedtechniques/programcodesmaybeignoredorpenalized.Stud......