1 条题解

  • 0
    @ 2026-10-25 14:06:59

    思路

    从原矩阵计算十字邻域,保持外边界且避免原地更新污染。按题面规定的输入输出协议处理;数据、边界和算法核验记录保存在本批教师资料。

    参考程序(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

    信息

    ID
    1005
    时间
    1000ms
    内存
    64MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者