博客
关于我
2019ICPC银川 B. So Easy(思维)
阅读量:225 次
发布时间:2019-03-01

本文共 1585 字,大约阅读时间需要 5 分钟。

为了解决这个问题,我们需要确定一个n*m矩阵中缺失的格子的值。矩阵初始时所有格子都是0,每次操作可以选择一行或一列,将该行或列的所有格子加1。经过若干次操作后,矩阵中的某一个格子缺失了,我们需要找出这个缺失格子的值。

方法思路

我们可以利用矩阵中的其他格子的值来推断出缺失格子的值。假设每一行进行了a_i次操作,每一列进行了b_j次操作,那么矩阵中的每个格子(i,j)的值为a_i + b_j。缺失的格子位于(x, y),则其值应为a_x + b_y。

为了计算缺失格子的值,我们可以利用矩阵的边缘格子。例如,如果缺失格子位于第一行第一列,我们可以利用其他三个角的格子来建立方程,解出a_i和b_j的值。

解决代码

#include 
using namespace std;const int maxm = 1e3 + 5;int g[maxm][maxm];int n, m;signed main() { scanf("%d %d", &n, &m); int x = 0, y = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { scanf("%d", &g[i][j]); if (g[i][j] == -1) { x = i; y = j; } } } // 特殊情况处理 if (x == 0 && y == 0) { // 格子在左上角 int a = g[x+1][y+1]; int b = g[x+1][y] + g[x][y+1]; cout << (b - a); } else if (x == 0 && y == m-1) { // 格子在右上角 int a = g[x+1][y-1] + g[x+1][y]; int b = g[x][y-1]; cout << (a - b); } else if (x == n-1 && y == 0) { // 格子在左下角 int a = g[x-1][y] + g[x-1][y+1]; int b = g[x][y+1]; cout << (a - b); } else if (x == n-1 && y == m-1) { // 格子在右下角 int a = g[x-1][y-1] + g[x-1][y]; int b = g[x-1][y-1] + g[x][y-1]; cout << (a - b); } else { // 通用情况 int a = g[x][y+1] - g[x][y]; int b = g[x+1][y] - g[x][y]; cout << (a + b); } return 0;}

代码解释

  • 读取输入:读取矩阵的行数n和列数m,并初始化矩阵g。
  • 查找缺失格子:遍历矩阵,找出缺失格子的位置(x, y)。
  • 处理特定情况:根据缺失格子的位置,分别处理四个角落的情况,计算缺失格子的值。
  • 通用情况处理:对于其他位置,利用相邻格子的值计算缺失格子的值。
  • 该方法通过建立方程组,利用已知的其他格子值来推断出缺失格子的值,确保了计算的准确性和效率。

    转载地址:http://vgkv.baihongyu.com/

    你可能感兴趣的文章
    python note 06 编码方式
    查看>>
    python numba 转灰度图_使用NumPy、Numba的简单使用(二)
    查看>>
    Python Numpy 关于 linspace()函数 使用详解(全)
    查看>>
    Python numpy插入、读取至postgreSQL数据库中bytea类型字段
    查看>>
    Python numpy数据的保存和读取
    查看>>
    python numpy矩阵索引_python – 在2D numpy ndarray或numpy矩阵中获取前N个值的索引
    查看>>
    Python OCR库:自动化测试验证码识别神器!
    查看>>
    python opencv - 斑点检测或圆形检测
    查看>>
    Python OpenCV HoughLinesP 无法检测线
    查看>>
    Python OpenCV-使用透明度覆盖图像
    查看>>
    python Opencv图像基础操作
    查看>>
    Python OpenCV将图像转换为字节字符串?
    查看>>
    python OpenCV视频的读取及保存
    查看>>
    python open和file的区别
    查看>>
    python open读取文件并对换行进行处理
    查看>>
    python os, os.path和sys模块
    查看>>
    Python os.environ 处理环境变量
    查看>>
    python os.path模块常用方法详解
    查看>>
    python os.system
    查看>>
    Python os.system执行多条语句,os.system的返回值以及与os.popen的区别
    查看>>