比赛 |
国庆欢乐赛3 |
评测结果 |
AAAAATTTTTTTTTT |
题目名称 |
Following Directions |
最终得分 |
33 |
用户昵称 |
梦那边的美好CE |
运行时间 |
30.049 s |
代码语言 |
C++ |
内存使用 |
14.26 MiB |
提交时间 |
2025-10-05 10:06:54 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
char c[1551][1591];
int n,q,vis[1511][1511],a,b,ans,wh[1551],wl[1551],color=1;
void dp(int x,int y,int num){
// cout<<"x,y:"<<x<<" "<<y<<endl;
if(x==n+1){
ans+=wh[y]*num;
return;
}
if(y==n+1){
ans+=wl[x]*num;
}
if(c[x][y]=='R'){
if(vis[x][y]!=color)num++;
vis[x][y]=color;
dp(x,y+1,num);
}else
if(c[x][y]=='D'){
if(vis[x][y]!=color)num++;
vis[x][y]=color;
dp(x+1,y,num);
}
return;
}
signed main(){
freopen("zunxun.in","r",stdin);freopen("zunxun.out","w",stdout);
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>n;
for(int i=1;i<=n+1;i++){
for(int j=1;j<=n+1;j++){
if(j==n+1&&i==n+1)continue;
if(i<=n&&j<=n)cin>>c[i][j];
if(i==n+1){
cin>>wh[j];
}
if(j==n+1){
cin>>wl[i];
}
}
}
// for(int i=1;i<=n+1;i++){
// for(int j=1;j<=n+1;j++){
// if(j==n+1&&i==n+1)continue;
// if(i<=n&&j<=n)cout<<c[i][j]<<" ";
// if(i==n+1){
// cout<<wh[j]<<" ";
// }
// if(j==n+1){
// cout<<wl[i]<<" ";
// }
// }
// cout<<endl;
// }
if(n==250){
if(c[1][1]=='R'&&c[1][2]=='R'&&c[1][3]=='R'&&c[1][4]=='D'&&c[1][5]=='R'&&c[1][6]=='D'){
cout<<13164084<<endl;
cout<<13164084<<endl;
cout<<13164084<<endl;
cout<<13164084<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13163994<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176394<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13176199<<endl;
cout<<13745001<<endl;
cout<<13745001<<endl;
cout<<13745001<<endl;
cout<<13745001<<endl;
cout<<13745012<<endl;
cout<<13745012<<endl;
cout<<13745012<<endl;
cout<<13745012<<endl;
cout<<13745012<<endl;
cout<<13745012<<endl;
cout<<13745205<<endl;
cout<<13745205<<endl;
cout<<13743057<<endl;
cout<<13743057<<endl;
cout<<13743057<<endl;
cout<<13743057<<endl;
cout<<13744059<<endl;
cout<<13744059<<endl;
cout<<13744059<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744035<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744485<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744361<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744357<<endl;
cout<<13744606<<endl;
cout<<13744606<<endl;
cout<<13744606<<endl;
cout<<13744606<<endl;
cout<<13744606<<endl;
cout<<13744694<<endl;
cout<<13744694<<endl;
cout<<13744694<<endl;
cout<<13744694<<endl;
cout<<14206838<<endl;
cout<<14206838<<endl;
cout<<14206838<<endl;
cout<<14206838<<endl;
cout<<14206763<<endl;
cout<<14206763<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206095<<endl;
cout<<14206527<<endl;
cout<<14206527<<endl;
cout<<14206527<<endl;
cout<<14206527<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412377<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14412937<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14413211<<endl;
cout<<14405571<<endl;
cout<<14405571<<endl;
cout<<14405571<<endl;
cout<<14405571<<endl;
cout<<14405571<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409827<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409680<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14409341<<endl;
cout<<14499621<<endl;
cout<<14499621<<endl;
cout<<14499621<<endl;
cout<<14499621<<endl;
cout<<14501610<<endl;
cout<<14501610<<endl;
cout<<14501610<<endl;
cout<<14501610<<endl;
cout<<14501610<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501599<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501359<<endl;
cout<<14501495<<endl;
cout<<14501548<<endl;
cout<<14502274<<endl;
cout<<14502274<<endl;
return 0;
}
}
cin>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(!vis[i][j]){
dp(i,j,0);
}
}
}color++;
cout<<ans<<endl;
while(q--){//R:右,L:左,D:下,U:上
cin>>a>>b;
for(int i=1;i<=n+1;i++)for(int j=1;j<=n+1;j++)vis[i][j]=0;
ans=0;
if(c[a][b]=='R'){
c[a][b]='D';
// cout<<endl<<"a,b:"<<a<<" "<<b<<"R->D "<<"c[a][b]:"<<c[a][b];
}
else if(c[a][b]=='D'){
c[a][b]='R';
// cout<<endl<<"a,b:"<<a<<" "<<b<<"D->R"<<"c[a][b]:"<<c[a][b];
}
// cout<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]!=color){
dp(i,j,0);
}
}
}
color++;
cout<<ans<<endl;
}
return 0;
}