codeforces 1485 D Multiples and Power Differences (构造)

题面

在这里插入图片描述
在这里插入图片描述

题意

在这里插入图片描述

题解

  1. A矩阵中元素最大是16,那么我们直接找一个小于1e6,而且是它的因子包含A中所有元素,这样就可以满足前两个条件,直接 16 !是会超出1e6 的,所以我们要找lcm{1,2,3,4,5,…16}, 算出的最小公倍数满足条件
  1. 对于第3个条件,我们可以采用错位法,让处于中心的元素加上一个原数组的4次方就好

代码

#include<bits/stdc++.h>

using namespace std;

int main() {
    
    

    int lcm = 1;
    for (int i = 2; i <= 16; i++) {
    
    
        int maxn = __gcd(i, lcm);
        lcm = lcm * i / maxn;
    }
    int n, m, x;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
    
    
        for (int j = 1; j <= m; j++) {
    
    
            cin >> x;
            if ((i + j) & 1) cout << lcm << " ";
            else cout << lcm + pow(x, 4) << " ";
            if (j==m) cout<<endl;
        }
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44791484/article/details/113833339