博客
关于我
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/

    你可能感兴趣的文章
    PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
    查看>>
    PHP函数
    查看>>
    React input defaultValue不会更新状态怎么办?
    查看>>
    PHP函数__autoload失效原因(与smarty有关)
    查看>>
    PHP函数判断移动端和PC端
    查看>>
    Springboot基础入门
    查看>>
    php函数性能优化中应注意哪些问题?
    查看>>
    PHP函数操作数字和汉字互转(100以内)
    查看>>
    PHP函数方法
    查看>>
    PHP创建目录mkdir无写入权限的问题解决方案
    查看>>
    PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
    查看>>
    php删除文件夹下面所有文件包括(删除文件夹)不删除文件夹
    查看>>
    React Collapse Pane 项目教程
    查看>>
    php判断ip黑名单程序代码
    查看>>
    php判断复选框是否被选中的方法
    查看>>
    PHP判断指定目录下是否存在文件
    查看>>
    php判断数组是否为空
    查看>>
    PHP判断数组是否有重复值、获取重复值
    查看>>
    springboot基于Web的社区留守儿童管理系统源码毕设+论文
    查看>>
    Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
    查看>>