显示代码纯文本
#include<iostream>
using namespace std;
long long n,q,ans=0,f[1515][1515],sum[1515][1515];
char mp[1515][1515];
int main(){
freopen("zunxun.in", "r", stdin);
freopen("zunxun.out", "w", stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) cin>>mp[i][j];
cin >>f[i][n+1];
}
for(int i=1;i<=n;i++) cin >>f[n+1][i];
cin >> q;
for(int t=0,x,y;t<=q;t++){
if(t){
cin>>x>>y;
mp[x][y]=(mp[x][y] == 'R')?'D':'R';
}
else x=y=n;
for(int i=x;i>=1;i--){
for(int j=y;j>=1;j--){
f[i][j]=(mp[i][j]=='R')?f[i][j + 1]:f[i + 1][j];
sum[i][j]=f[i][j]+sum[i][j+1]+sum[i+1][j]-sum[i+1][j+1];
}
}
cout <<sum[1][1]<<endl;
}
return 0;
}