开两个数组求出每一行、每一列的和
然后遍历把行和列的和加起来 减去多算的这个位置的数字即可
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll r[1000005],c[1000005];
int main(){
int n,m;cin>>n>>m;
vector<vector<ll>> a(n+1,vector<ll>(m+1));
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%lld",&a[i][j]);
r[i]+=a[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
c[i]+=a[j][i];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<r[i]+c[j]-a[i][j]<<" ";
}cout<<endl;
}
return 0;
}
京公网安备 11010502036488号