1 条题解
-
0
思路
从原矩阵计算十字邻域,保持外边界且避免原地更新污染。按题面规定的输入输出协议处理;数据、边界和算法核验记录保存在本批教师资料。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; long long gcdll(long long a,long long b){while(b){long long t=a%b;a=b;b=t;}return a;} int main(){ios::sync_with_stdio(false);cin.tie(nullptr);const int p=1128; int n,m;cin>>n>>m;vector<vector<int>>a(n,vector<int>(m));for(auto&r:a)for(int&x:r)cin>>x;if(p==1126){for(int j=0;j<m;j++){for(int i=0;i<n;i++)cout<<(i?" ":"")<<a[i][j];cout<<"\n";}}else{auto b=a;for(int i=1;i+1<n;i++)for(int j=1;j+1<m;j++)b[i][j]=(a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1]+2)/5;for(auto&r:b){for(int j=0;j<m;j++)cout<<(j?" ":"")<<r[j];cout<<"\n";}} cout<<"\n";return 0;}
- 1