QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#636249#5414. Stop, Yesterday Please No Morewzxtsl#AC ✓40ms175772kbC++233.8kb2024-10-12 23:02:112024-10-12 23:02:18

Judging History

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

  • [2024-10-12 23:02:18]
  • 评测
  • 测评结果:AC
  • 用时:40ms
  • 内存:175772kb
  • [2024-10-12 23:02:11]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
#define For(i,a,aa) for(int i=a;i<=aa;i++)
int n,m,k;
const int N=2e6+7,INF=0x3f3f3f3f;
string s;
int a[3003][3003];
int b[3003][3003];
int nx,ny,u,d,l,r;
void solve(){
	cin>>n>>m>>k;
    cin>>s;
    For(i,1,3*n+1)
        For(j,1,3*m+1)
            a[i][j]=b[i][j]=0;
    d=l=nx=ny=u=r=0;
    int len=s.length();
    For(i,0,len-1)
    {
        if(s[i]=='U')
        {
            ny--;
            d=min(d,ny);
        }
        if(s[i]=='R')
        {
            nx--;
            l=min(l,nx);
        }
        if(s[i]=='D')
        {
            ny++;
            u=max(u,ny);
        }
        if(s[i]=='L')
        {
            nx++;
            r=max(r,nx);
        }        
    }
    l=-l,d=-d;//cout<<l<<"!"<<r<<"!!";
    int nn=n-(u+d),mm=m-(l+r);
    if(nn<=0||mm<=0)
    {
        if(k==0) cout<<m*n<<endl;
        else cout<<0<<endl;
        return;
    }
    int nnn=u+d+1,mmm=l+r+1;
    nx=l+1,ny=u+1;
    a[ny][nx]=1;
    For(i,0,len-1)
    {
        if(s[i]=='U')
        {
            ny++;
            a[ny][nx]=1;
        }
        if(s[i]=='R')
        {
            nx--;
            a[ny][nx]=1;
        }
        if(s[i]=='D')
        {
            ny--;
            a[ny][nx]=1;
        }
        if(s[i]=='L')
        {
            nx++;
            a[ny][nx]=1;
        }          
    }    

    For(i,1,nnn)
        For(j,1,mmm)
        {
            b[i+nn][j+mm]=a[i][j];
        }   

    mmm=mmm+mm+mm;
    nnn=nn+nn+nnn;
    // For(i,1,nnn)
    // {
    //     For(j,1,mmm)
    //         cout<<b[i][j];
    //     cout<<endl;
    // }   
    nx=1+d+nn;ny=1+l+mm;

    //cout<<l<<" "<<d<<" "<<u<<" "<<r<<endl;
    int ac[nnn+1][mmm+1];
    memset(ac,0,sizeof ac);

    for(int i=1;i<=nnn;i++)
    {
        for(int j=1;j<=mmm;j++){
          ac[i][j]+=ac[i][j-1]+ac[i-1][j]-ac[i-1][j-1]+b[i][j];
      //    cout<<ac[i][j]<<" ";
        }
     //   cout<<endl;
    }//cout<<nx<<" "<<ny<<endl;
    int bro=0;//cout<<nx-d<<" "<<nx+u<<" "<<ny-r<<" "<<ny+l<<endl;
    //cout<<l<<" "<<r<<endl;
   // cout<<nx-d<<" "<<nx+u+nn-1<<" "<<ny-l<<" "<<ny+r+mm-1<<endl;
    // 1 2
  //  cout<<ac[5][6]-ac[5][3]-ac[3][6]+ac[3][3];
    for(int i=nx-d;i<=nx+u+nn-1;i++){
       
        for(int j=ny-l;j<=ny+r+mm-1;j++){
             //cout<<"^&"<<endl;
          if(i<nn+1){
             if(j<mm+1){
                int ans=0;
                ans=ac[i][j]-ac[i][0]-ac[0][j]+ac[0][0];
                
                if(ans==nn*mm-k){
                   // cout<<i<<" "<<j<<"?"<<endl;
                    bro++;
                }
                

             }
             else{
                int ans=0;
                ans=ac[i][j]-ac[i][j-mm]-ac[0][j]+ac[0][j-mm];
                if(ans==nn*mm-k){
                 //   cout<<i<<" "<<j<<"?"<<endl;
                    bro++;
                }
             }
          }
          else{
            if(j<mm+1){
                int ans=0;
                ans=ac[i][j]-ac[i][0]-ac[i-nn][j]+ac[i-nn][0];
                if(ans==nn*mm-k){
                    
                   // cout<<i<<" "<<j<<"?"<<endl;
                    bro++;
                }

             }
             else{
                int ans=0;
                ans=ac[i][j]-ac[i][j-mm]-ac[i-nn][j]+ac[i-nn][j-mm];
                if(ans==nn*mm-k){
                 //  cout<<i<<" "<<j<<"?"<<endl;
                    bro++;
                }
             }
          }

        }
    }
   cout<<bro<<endl;
            
}
signed main(){
    fast;
	int t=1;
    cin>>t;
    while(t--)
    {
        solve();
    }
	    
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 5820kb

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: 8ms
memory: 20860kb

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: 24ms
memory: 175436kb

input:

1
1000 1000 979065
DDUULULUDULLULLDLUULURRLDURLRDLRRUURUUUDLRLUUDUUDUDLLDDDULU

output:

958416

result:

ok 1 number(s): "958416"

Test #4:

score: 0
Accepted
time: 28ms
memory: 175012kb

input:

1
1000 1000 943471
LRLDLURLDLRDRDUULULRDDLLRURDUURLLDDLDLDDLLLUUURLDRUDRLLUUUUUDLUUDLURURRDLRLRRRLULRRULURLRRDLDRLUDRRLDDLUDRRLLUDLLLRDULRRRRLDUUDRDLULUUUUDRRDULUDLLUUDLDURDRRLRRLDRLDDRURURLUULRRLDLLRLRDRRUULDLDLULLDLLRULLRUULURDURRLUUDUULLULDLRUDDLRLRLLUDDDLLLUDRRLDDULRRURRDURDDRDLLULRLULURLRDLLURD...

output:

889224

result:

ok 1 number(s): "889224"

Test #5:

score: 0
Accepted
time: 32ms
memory: 164324kb

input:

1
1000 1000 315808
LLRURURRDDDULLDDUDRDLRLLLDDDLUDRDURLDULRLRULUUDLUULUUDULLLLDDURLDUULUUDLLDLLDRUDUULRLLRLRUURLRLULLDDLLDUDLLRUUDRLDLUULDLLDRRRURDULLDRRRDURURDRLDURURUDLURLDURRLRRUDUDURDRLRRRDLRRURLURUDRRLDLRULLDLUURDURLURLLRDLRDRUURURDRUDUUUDLRRLUDLUUDUDDRRDUULUUDDRLLULDUUDRURRDRLULRLULDURLURUDLLD...

output:

426

result:

ok 1 number(s): "426"

Test #6:

score: 0
Accepted
time: 28ms
memory: 175556kb

input:

1
1000 1000 986018
LLULDRRRDDURRUDRUURRRDDLUUDUULRULRDULLD

output:

972180

result:

ok 1 number(s): "972180"

Test #7:

score: 0
Accepted
time: 27ms
memory: 174904kb

input:

1
1000 1000 945431
DDRRURUUDLDULLDLDDLRULDLLDDRRLUDRLUURRLDRDLURUURRRRLRURLURULLLDRDDDRRRLDLDRLRDDUURRURDDDLRUURLUURLRDUDDDLLDUURLDLUDLLRRDUUDRLUULLUULDLURRUDLUURLRLRURDUDRRRDRLRUDLLLLURLULRLRLRRDDUDLRLDUUUULUDLLURRLURRDLRURRRULDDLLLRLRDLUDLLDDRULDUULRDDUUDDUDLURDULLDUDDLULRULDRLDDULDULLUDLULUDRURRR...

output:

893000

result:

ok 1 number(s): "893000"

Test #8:

score: 0
Accepted
time: 39ms
memory: 168016kb

input:

1
1000 1000 460035
RDDUURDULDDLDDLDDLDRRULLRLUURLURRRDRUDDDRDLDLDULUDLRLLRRLRRURRRDLRLUDRDURULDRRDDDDDDLRLDULUULDUDRLLUUUURUUDRURLRRULDRDRUUUUULULRURDDRLRULLLRDRRULUDDUDDLLLRDRUULUUDDRLURDLDURRDLRRLDRRUDLUULRDLURULLDLRLLDDURDUDLDULDLLRULRDLRLUULLUDRUDDDLRRDULULLRUURLUURRLLLLRLDRURLLRLDRRDDDRLUUUUDUL...

output:

417

result:

ok 1 number(s): "417"

Test #9:

score: 0
Accepted
time: 30ms
memory: 175772kb

input:

1
1000 1000 992010
LLLLLDLDRRLUDRR

output:

1999

result:

ok 1 number(s): "1999"

Test #10:

score: 0
Accepted
time: 23ms
memory: 174552kb

input:

1
1000 1000 919600
LLDLRUDRLURRUDRDRRDLRUDLRRRUUULDLDURDDDRUURRRLLURULDRLRLULLULDRULULRLRRRURLDDDRUUULUDLLLLRRLLRDDRDULUDLRLRLDRLUDUDURRULUULLDULUULDLLDRDULUDLDULDDUULDDRRURDRDULRRLDRRDUURURRLUUUDRRLDRRDDLULRDDLDLLRLRLLLRULUUUURRRLDLRUDRRLRURDRLDULLLUDRULLDLDRRUUDLRRLLRLDDLUDLRLRRURUUDUULUDURDURRLUU...

output:

944

result:

ok 1 number(s): "944"

Test #11:

score: 0
Accepted
time: 40ms
memory: 173472kb

input:

1
1000 1000 804351
DLRLDLLLLUDRDURRLDDRRLRUULURURDDDRDLRUDDULRRLLULURDRUUDRURRLURRRDRURRDRLULRDLRRDRRDDUDLUDLDULRUURRLRUUDRLDDRDDUUDULUULUUUDLRURULLRDUUDDDRRLDRUDDUUDRURLRDRUDLRLDDRRLLRLRDUDDULLULRLLDDUDDDUULDULLRRULULDUUULUDRRDRLUDLRRDDUDLRRDDLDLDRUULRRRRRLRLULLRDDRDDDULDRRURUDDLURLRLURLRDRULUDULUU...

output:

640000

result:

ok 1 number(s): "640000"