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

    你可能感兴趣的文章
    PoE三种标准:标准 PoE、PoE+、PoE++,网络工程师必知!
    查看>>
    POI 的使用
    查看>>
    poi 读取单元格为null者空字符串
    查看>>
    poi-tl简介与文本/表格和图片渲染
    查看>>
    pointnet分割自己的点云数据_PointNet解析
    查看>>
    POI实现Excel导入Cannot get a text value from a numeric cell
    查看>>
    POI实现Excel导入时提示NoSuchMethodError: org.apache.poi.util.POILogger.log
    查看>>
    POI实现Excel导出时常用方法说明
    查看>>
    POI导出Excel2003
    查看>>
    POI数据获取及坐标纠偏
    查看>>
    Quartz入门看这一篇文章就够了
    查看>>
    POI解析Excel【poi的坑——空行处理】
    查看>>
    POI:POI+JXL实现xls文件添加水印
    查看>>
    POI:POI实现docx文件添加水印
    查看>>
    POJ 1006
    查看>>
    Quartz中时间表达式的设置-----corn表达式
    查看>>
    poj 1035
    查看>>
    POJ 1061 青蛙的约会 (扩展欧几里得)
    查看>>
    Quartz2.2.1简单使用
    查看>>
    POJ 1080 Human Gene Functions(DP:LCS)
    查看>>