题面
题意
题解
- A矩阵中元素最大是16,那么我们直接找一个小于1e6,而且是它的因子包含A中所有元素,这样就可以满足前两个条件,直接 16 !是会超出1e6 的,所以我们要找lcm{1,2,3,4,5,…16}, 算出的最小公倍数满足条件
- 对于第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;
}