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

    你可能感兴趣的文章
    oracle 执行一条查询语句,把数据加载到页面或者前台发生的事情
    查看>>
    oracle 批量生成建同义词语句和付权语句
    查看>>
    oracle 抓包工具,shell 安装oracle和pfring(抓包) 及自动环境配置
    查看>>
    Oracle 拆分以逗号分隔的字符串为多行数据
    查看>>
    Oracle 排序中使用nulls first 或者nulls last 语法
    查看>>
    oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
    查看>>
    Oracle 操作笔记
    查看>>
    oracle 数据库 安装 和优化
    查看>>
    oracle 数据库dg搭建规范1
    查看>>
    Oracle 数据库常用SQL语句(1)
    查看>>
    Oracle 数据库特殊查询总结
    查看>>
    Oracle 数据类型
    查看>>
    Oracle 数据自动备份 通过EXP备份
    查看>>
    oracle 数据迁移 怎么保证 和原表的数据顺序一致_一个比传统数据库快 1001000 倍的数据库,来看一看?...
    查看>>
    oracle 时间函数
    查看>>
    oracle 时间转化函数及常见函数 .
    查看>>
    Oracle 权限(grant、revoke)
    查看>>
    oracle 查询clob
    查看>>
    Oracle 比较 B-tree 和 Bitmap 索引
    查看>>
    Oracle 注意点大全
    查看>>