zoukankan      html  css  js  c++  java
  • Gym

    E - Restore

    题意:输入一个n,输入一个对角线空缺(为0)的n*n的矩阵,要求每一行每一列和对角线的和相同,输出完整的矩阵。

    解法:设每一行的和都是sum,用一个h[]数组存每一行的和。则可得a[0][0] = sum-h[0], a[1][1] = sum-h[1], a[2][2] = sum-h[2]......同时所有对角线的和也为sum,则可得公式 sum-h[0]+sum-h[1]+...+sum-h[n-1] = sum, 设所有h[x]的和为summ, 即n*sum-summ=sum, 即可得sum = summ/(n-1),后面由式子a[i][i] = sum-h[i]便可求得。

    注意:a[i][j]的取值范围! - 1012 ≤ Aij ≤ 1012, 要用long long去存。

    typedef long long ll;
    ll a[105][105]; ll h[105]; void solve() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%lld", &a[i][j]); h[i] += a[i][j]; } } ll summ=0; for (int i = 0; i < n; i++) { summ+=h[i]; } ll sum = summ/(n-1); for (int i = 0; i < n; i++) { a[i][i] = sum-h[i]; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (j) printf(" "); printf("%lld", a[i][j]); } printf(" "); } } int main() { int t = 1; //scanf("%d", &t); while(t--) solve(); return 0; }
  • 相关阅读:
    Queue——C#浅谈
    C#设计模式(7)——适配器模式
    test
    python 技巧
    在centos 配置python django环境 总结
    pyqt5 做的小程序,可以用来UI做个小demo
    python sqlalthemy 总结
    数据清理,预处理 pandas dataframe 操作技巧 总结
    对区块链看法
    hadoop spark 总结
  • 原文地址:https://www.cnblogs.com/gggyt/p/6411324.html
Copyright © 2011-2022 走看看