比赛 国庆欢乐赛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;
}