• Wannafly camp Day1 B Board


    题意

      给一个矩阵,是对初始为0的矩阵做若干次对某一行或某一列的所有元素同时加上一个值的操作后得到的,其中有一个位置被隐藏,问隐藏的值。

    题解

      假设第i行被加的值为Ai,第i列被加的值为Bi,这样只需要对某一行和某一列差分,就可以得到数列A和B的差值数组,然后对左上角或右下角加上或减去值即可。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 int a[1010][1010];
     5 
     6 int main()
     7 {
     8     int n;
     9     scanf("%d", &n);
    10     int sx(0), sy(0);
    11     for (int i = 0; i < n; ++i)
    12         for (int j = 0; j < n; ++j)
    13         {
    14             scanf("%d", &a[i][j]);
    15             if (a[i][j] == -1)
    16                 sx = i, sy = j;
    17         }
    18     if (sx != 0 && sy != 0)
    19         printf("%d
    ", a[0][sy] + a[sx][0] - a[0][0]);
    20     else
    21     {
    22         if (sx == 0 && sy == 0)
    23             printf("%d
    ", a[n - 1][0] + a[0][n - 1] - a[n - 1][n - 1]);
    24         else
    25             if (sx == 0)
    26                 printf("%d
    ", a[1][sy] + a[0][0] - a[1][0]);
    27             else
    28                 if (sy == 0)
    29                     printf("%d
    ", a[sx][1] + a[0][0] - a[0][1]);
    30     }
    31     
    32     return 0;
    33 } 
  • 相关阅读:
    数据库基础
    Junit单元测试、反射与注解
    Stream流
    Java IO所用类
    字符集
    Lambda表达式
    【jdk1.8源码分析】LinkedHashMap
    线性表
    【jdk1.8源码分析】ArrayList
    java学习血泪史
  • 原文地址:https://www.cnblogs.com/aseer/p/9460481.html
Copyright © 2020-2023  润新知