QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#561721#5414. Stop, Yesterday Please No Morelouhao088#AC ✓19ms13224kbC++232.0kb2024-09-13 09:35:562024-09-13 09:36:01

Judging History

你现在查看的是最新测评结果

  • [2024-09-13 09:36:01]
  • 评测
  • 测评结果:AC
  • 用时:19ms
  • 内存:13224kb
  • [2024-09-13 09:35:56]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define pi pair<int,int>
#define fi first
#define se second
#define mp make_pair
const int maxn=1e6+5;
int T,n,m,k;
char a[maxn];
int ans;
pi st[maxn];
int s[1005][1005];
bool vis[1005][1005];
int main()
{
    //ios::sync_with_stdio(false);
    //cin.tie(0);
    cin>>T;
    while(T--){
        cin>>n>>m>>k;
        ans=0;
        int s1=0,s2=0,tot=0;
        int c1=0,c2=0,d1=0,d2=0;
        scanf("%s",a+1);
        ans=0;int len=strlen(a+1);
       // cout<<len<<endl;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)s[i][j]=vis[i][j]=0;
        for(int i=1;i<=len;i++){
            if(a[i]=='U')s1--;
            else if(a[i]=='D')s1++;
            if(a[i]=='L')s2--;
            else if(a[i]=='R')s2++;
            c1=max(c1,s1);c2=min(c2,s1);
            d1=max(d1,s2);d2=min(d2,s2);
            //cout<<s1<<" "<<s2<<endl;
        }
        //cout<<c1<<" "<<c2<<endl;
       // cout<<d1<<" "<<d2<<endl;
        c2=-c2+1;d2=-d2+1;
        c1=n-c1,d1=m-d1;
        swap(c1,c2),swap(d1,d2);
        //cout<<c1<<" "<<c2<<endl;
       // cout<<d1<<" "<<d2<<endl;

        int l=c2-c1,r=d2-d1;
        if(c1>c2||d1>d2){
            if(k==0){
                cout<<n*m<<endl;
            }
            else puts("0");
            continue;
        }
        st[++tot]=mp(c1,d1);vis[c1][d1]=1;
        for(int i=1;i<=len;i++){
            if(a[i]=='U')c1--;
            if(a[i]=='D')c1++;
            if(a[i]=='L')d1--;
            if(a[i]=='R')d1++;
            if(!vis[c1][d1])vis[c1][d1]=1,st[++tot]=mp(c1,d1);
        }
        
        for(int i=1;i<=tot;i++){
            int x=st[i].fi,y=st[i].se;
            s[x][y]++,s[x][y+r+1]--,s[x+l+1][y]--,s[x+l+1][y+r+1]++;
        }int u=(l+1)*(r+1);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++){
                s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
                if(u==s[i][j]+k)ans++;
            }
        cout<<ans<<endl;
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 7752kb

input:

3
4 5 3
ULDDRR
4 5 0
UUUUUUU
4 5 10
UUUUUUU

output:

2
20
0

result:

ok 3 number(s): "2 20 0"

Test #2:

score: 0
Accepted
time: 2ms
memory: 10140kb

input:

1060
19 12 0
UDLDDUUUUDDDLLRDUDUURULUUUDRDUDRDRLRLRLULULLLDLDDRLUUUURUUUDDRLLRUUUDULURUULLRDRLRDDURDUUURRRLURLRUULRRUDURDLUUURDLURDDLUUURDDRLLURRDLRUDLRDRLLRRDRDDLDRURRRLUDULLLRUUDLRRURRDLLRRRDLLRDDDLRLRURURDDDL
11 1 0
UR
3 18 33
UDRLR
17 11 132
RLDRDLDRUU
6 10 13
UULUDDLRDLUUDLDD
1 15 0
D
6 20 50
D...

output:

228
11
20
99
18
15
34
240
15
0
0
13
14
18
26
16
1
19
108
8
2
2
3
7
0
30
16
21
0
8
10
9
15
5
320
11
7
3
0
0
12
0
11
0
0
14
0
22
36
51
23
7
6
4
2
48
28
8
63
22
49
13
10
4
108
10
18
44
0
15
9
0
4
30
14
99
105
10
14
17
0
66
10
11
28
52
34
56
33
14
56
90
14
0
121
3
48
30
36
13
0
30
7
8
3
11
16
45
20
34
0...

result:

ok 1060 numbers

Test #3:

score: 0
Accepted
time: 3ms
memory: 12768kb

input:

1
1000 1000 979065
DDUULULUDULLULLDLUULURRLDURLRDLRRUURUUUDLRLUUDUUDUDLLDDDULU

output:

958416

result:

ok 1 number(s): "958416"

Test #4:

score: 0
Accepted
time: 0ms
memory: 9348kb

input:

1
1000 1000 943471
LRLDLURLDLRDRDUULULRDDLLRURDUURLLDDLDLDDLLLUUURLDRUDRLLUUUUUDLUUDLURURRDLRLRRRLULRRULURLRRDLDRLUDRRLDDLUDRRLLUDLLLRDULRRRRLDUUDRDLULUUUUDRRDULUDLLUUDLDURDRRLRRLDRLDDRURURLUULRRLDLLRLRDRRUULDLDLULLDLLRULLRUULURDURRLUUDUULLULDLRUDDLRLRLLUDDDLLLUDRRLDDULRRURRDURDDRDLLULRLULURLRDLLURD...

output:

889224

result:

ok 1 number(s): "889224"

Test #5:

score: 0
Accepted
time: 19ms
memory: 11032kb

input:

1
1000 1000 315808
LLRURURRDDDULLDDUDRDLRLLLDDDLUDRDURLDULRLRULUUDLUULUUDULLLLDDURLDUULUUDLLDLLDRUDUULRLLRLRUURLRLULLDDLLDUDLLRUUDRLDLUULDLLDRRRURDULLDRRRDURURDRLDURURUDLURLDURRLRRUDUDURDRLRRRDLRRURLURUDRRLDLRULLDLUURDURLURLLRDLRDRUURURDRUDUUUDLRRLUDLUUDUDDRRDUULUUDDRLLULDUUDRURRDRLULRLULDURLURUDLLD...

output:

426

result:

ok 1 number(s): "426"

Test #6:

score: 0
Accepted
time: 3ms
memory: 12676kb

input:

1
1000 1000 986018
LLULDRRRDDURRUDRUURRRDDLUUDUULRULRDULLD

output:

972180

result:

ok 1 number(s): "972180"

Test #7:

score: 0
Accepted
time: 3ms
memory: 10964kb

input:

1
1000 1000 945431
DDRRURUUDLDULLDLDDLRULDLLDDRRLUDRLUURRLDRDLURUURRRRLRURLURULLLDRDDDRRRLDLDRLRDDUURRURDDDLRUURLUURLRDUDDDLLDUURLDLUDLLRRDUUDRLUULLUULDLURRUDLUURLRLRURDUDRRRDRLRUDLLLLURLULRLRLRRDDUDLRLDUUUULUDLLURRLURRDLRURRRULDDLLLRLRDLUDLLDDRULDUULRDDUUDDUDLURDULLDUDDLULRULDRLDDULDULLUDLULUDRURRR...

output:

893000

result:

ok 1 number(s): "893000"

Test #8:

score: 0
Accepted
time: 19ms
memory: 13224kb

input:

1
1000 1000 460035
RDDUURDULDDLDDLDDLDRRULLRLUURLURRRDRUDDDRDLDLDULUDLRLLRRLRRURRRDLRLUDRDURULDRRDDDDDDLRLDULUULDUDRLLUUUURUUDRURLRRULDRDRUUUUULULRURDDRLRULLLRDRRULUDDUDDLLLRDRUULUUDDRLURDLDURRDLRRLDRRUDLUULRDLURULLDLRLLDDURDUDLDULDLLRULRDLRLUULLUDRUDDDLRRDULULLRUURLUURRLLLLRLDRURLLRLDRRDDDRLUUUUDUL...

output:

417

result:

ok 1 number(s): "417"

Test #9:

score: 0
Accepted
time: 3ms
memory: 9256kb

input:

1
1000 1000 992010
LLLLLDLDRRLUDRR

output:

1999

result:

ok 1 number(s): "1999"

Test #10:

score: 0
Accepted
time: 0ms
memory: 10912kb

input:

1
1000 1000 919600
LLDLRUDRLURRUDRDRRDLRUDLRRRUUULDLDURDDDRUURRRLLURULDRLRLULLULDRULULRLRRRURLDDDRUUULUDLLLLRRLLRDDRDULUDLRLRLDRLUDUDURRULUULLDULUULDLLDRDULUDLDULDDUULDDRRURDRDULRRLDRRDUURURRLUUUDRRLDRRDDLULRDDLDLLRLRLLLRULUUUURRRLDLRUDRRLRURDRLDULLLUDRULLDLDRRUUDLRRLLRLDDLUDLRLRRURUUDUULUDURDURRLUU...

output:

944

result:

ok 1 number(s): "944"

Test #11:

score: 0
Accepted
time: 18ms
memory: 11140kb

input:

1
1000 1000 804351
DLRLDLLLLUDRDURRLDDRRLRUULURURDDDRDLRUDDULRRLLULURDRUUDRURRLURRRDRURRDRLULRDLRRDRRDDUDLUDLDULRUURRLRUUDRLDDRDDUUDULUULUUUDLRURULLRDUUDDDRRLDRUDDUUDRURLRDRUDLRLDDRRLLRLRDUDDULLULRLLDDUDDDUULDULLRRULULDUUULUDRRDRLUDLRRDDUDLRRDDLDLDRUULRRRRRLRLULLRDDRDDDULDRRURUDDLURLRLURLRDRULUDULUU...

output:

640000

result:

ok 1 number(s): "640000"