【错题集-编程题】十字爆破(预处理 + 模拟)

简介: 【错题集-编程题】十字爆破(预处理 + 模拟)

牛客对于题目链接:十字爆破 (nowcoder.com)


一、分析题目

暴力模拟会超时。

预处理,先把每一行以及每一列的和存起来。

模拟即可,但是由于数据量过⼤,我们可以提前把每⼀⾏以及每⼀列的和存起来,⽅便统计总和。


二、代码

//值得学习的代码
#include <iostream>
using namespace std;
 
const int N = 1e6 + 10;
 
typedef long long LL;
 
LL n, m;
LL row[N], col[N];
 
int main()
{
    scanf("%ld %ld", &n, &m);
    LL arr[n][m];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            scanf("%ld", &arr[i][j]);
            row[i] += arr[i][j];
            col[j] += arr[i][j];
        }
    }
 
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            printf("%ld ", row[i] + col[j] - arr[i][j]);
        }
        printf("\n");
    }
 
    return 0;
}

三、反思与改进

这道题的思路完全正确,不过没有考虑到数组初始化的问题(尽量还是定义全局变量,不需要再对数组进行初始化)。另外注意一下,这道题的输入输出数据量较大,所以尽量选择使用 scanf 或更快的 IO 方式。


相关文章
|
7月前
|
存储 算法 安全
用Python实现自动扫雷!
用Python实现自动扫雷!
|
6月前
|
存储 编解码 算法
C#.NET逃逸时间算法生成分形图像的毕业设计完成!晒晒功能
该文介绍了一个使用C#.NET Visual Studio 2008开发的程序,包含错误修复的Julia、Mandelbrot和优化过的Newton三种算法,生成色彩丰富的分形图像。作者改进了原始算法的效率,将内层循环的画点操作移至外部,提升性能。程序提供五种图形模式,支持放大缩小及颜色更新,并允许用户自定义画布大小以调整精度。还具备保存为高质JPG的功能。附有四张示例图片展示生成的分形效果。
|
6月前
|
数据采集 XML 存储
基于Selenium+Python实现自动解数独,秒变最强大脑
基于Selenium+Python实现自动解数独,秒变最强大脑
|
算法 测试技术 C#
C++前缀和算法的应用:石头游戏 VIII 原理源码测试用例
C++前缀和算法的应用:石头游戏 VIII 原理源码测试用例
|
Shell
shell编程之双重循环(教你花式打印各种图形)(上)
1、双重循环概述 双重循环需要具备的前提——存在两个以上的自变量。 执行机制:
729 0
|
Shell
shell编程之双重循环(教你花式打印各种图形)(下)
1、双重循环概述 双重循环需要具备的前提——存在两个以上的自变量。 执行机制:
310 0
|
算法 数据安全/隐私保护 C语言
【C初阶】第三篇——分支和循环练习题(猜数字游戏+关机恶搞+模拟用户登录)
【C初阶】第三篇——分支和循环练习题(猜数字游戏+关机恶搞+模拟用户登录)
|
存储 算法 机器人
【算法刷题】—7.14模拟,数组螺旋输出,机器人走路
✨今日算法三题 1.二进制求和 2.螺旋矩阵 3.模拟行走机器人
【算法刷题】—7.14模拟,数组螺旋输出,机器人走路
|
C语言 数据安全/隐私保护
C语言第三章 顺序结构程序设计习题【原始版手机编辑,转换电脑数据混乱,看水印】
C语言第三章 顺序结构程序设计习题【原始版手机编辑,转换电脑数据混乱,看水印】
125 0
C语言第三章 顺序结构程序设计习题【原始版手机编辑,转换电脑数据混乱,看水印】