QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#232731#5414. Stop, Yesterday Please No MorexukuanAC ✓22ms51708kbC++141.8kb2023-10-30 20:56:462023-10-30 20:56:47

Judging History

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

  • [2023-10-30 20:56:47]
  • 评测
  • 测评结果:AC
  • 用时:22ms
  • 内存:51708kb
  • [2023-10-30 20:56:46]
  • 提交

answer

#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#define ll long long
using namespace std;

const ll N=1010,M=1000010;
ll T,n,m,k,len,L,R,U,D,ans,sum[N<<1][N<<1];
char s[M];
struct node{
	ll x,y;
}now;
vector<node> hole;

inline ll calc(ll x1,ll Y1,ll x2,ll y2){
	return sum[x2][y2]-sum[x1-1][y2]-sum[x2][Y1-1]+sum[x1-1][Y1-1];
}

inline void clean(){
	ans=0;
	for(ll i=0; i<=n*2+1; i++){
		for(ll j=0; j<=m*2+1; j++) sum[i][j]=0;
	}
	while(!hole.empty()) hole.pop_back();
}

int main(){
	scanf("%lld",&T);
	while(T--){
		clean();
		scanf("%lld %lld %lld",&n,&m,&k);
		scanf("%s",s+1); len=strlen(s+1);
		now.x=1; now.y=1;
		U=1; D=n; L=1; R=m;
		for(ll i=1; i<=len; i++){
			switch(s[i]){
				case 'U':{
					now.x++;
					U=max(now.x,U);
					break;
				}
				case 'D':{
					now.x--;
					D=min(now.x+n-1,D);
					break;
				}
				case 'L':{
					now.y++;
					L=max(now.y,L);
					break;
				}
				case 'R':{
					now.y--;
					R=min(now.y+m-1,R);
					break;
				}
				default:while(1);
			}
			hole.push_back(node{now.x-1,now.y-1});
		}
		//cout<<'L'<<L<<'R'<<R<<'U'<<U<<'D'<<D<<endl;
		hole.push_back(node{0,0});
		ll val=max(R-L+1,0ll)*max(D-U+1,0ll);
		
		if(val<k){
			printf("0\n");
			continue;
		}
		if(val==0){
			printf("%lld\n",n*m);
			continue;
		}
		
		for(ll i=0; i<(ll)hole.size(); i++){
			if(hole[i].x>=-n&&hole[i].x<=n&&hole[i].y>=-m&&hole[i].y<=m){
				sum[hole[i].x+n][hole[i].y+m]=1;
			}
		}
		for(ll i=1; i<=n*2+1; i++){
			for(ll j=1; j<=m*2+1; j++){
				sum[i][j]+=sum[i][j-1]+sum[i-1][j]-sum[i-1][j-1];
			}
		}
		
		for(ll x=1; x<=n; x++){
			for(ll y=1; y<=m; y++){
				if(calc(U+n-x,L+m-y,D+n-x,R+m-y)==val-k) ans++;
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
} 

详细

Test #1:

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

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: 8436kb

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: 14ms
memory: 35556kb

input:

1
1000 1000 979065
DDUULULUDULLULLDLUULURRLDURLRDLRRUURUUUDLRLUUDUUDUDLLDDDULU

output:

958416

result:

ok 1 number(s): "958416"

Test #4:

score: 0
Accepted
time: 4ms
memory: 35496kb

input:

1
1000 1000 943471
LRLDLURLDLRDRDUULULRDDLLRURDUURLLDDLDLDDLLLUUURLDRUDRLLUUUUUDLUUDLURURRDLRLRRRLULRRULURLRRDLDRLUDRRLDDLUDRRLLUDLLLRDULRRRRLDUUDRDLULUUUUDRRDULUDLLUUDLDURDRRLRRLDRLDDRURURLUULRRLDLLRLRDRRUULDLDLULLDLLRULLRUULURDURRLUUDUULLULDLRUDDLRLRLLUDDDLLLUDRRLDDULRRURRDURDDRDLLULRLULURLRDLLURD...

output:

889224

result:

ok 1 number(s): "889224"

Test #5:

score: 0
Accepted
time: 11ms
memory: 51592kb

input:

1
1000 1000 315808
LLRURURRDDDULLDDUDRDLRLLLDDDLUDRDURLDULRLRULUUDLUULUUDULLLLDDURLDUULUUDLLDLLDRUDUULRLLRLRUURLRLULLDDLLDUDLLRUUDRLDLUULDLLDRRRURDULLDRRRDURURDRLDURURUDLURLDURRLRRUDUDURDRLRRRDLRRURLURUDRRLDLRULLDLUURDURLURLLRDLRDRUURURDRUDUUUDLRRLUDLUUDUDDRRDUULUUDDRLLULDUUDRURRDRLULRLULDURLURUDLLD...

output:

426

result:

ok 1 number(s): "426"

Test #6:

score: 0
Accepted
time: 4ms
memory: 35476kb

input:

1
1000 1000 986018
LLULDRRRDDURRUDRUURRRDDLUUDUULRULRDULLD

output:

972180

result:

ok 1 number(s): "972180"

Test #7:

score: 0
Accepted
time: 12ms
memory: 35552kb

input:

1
1000 1000 945431
DDRRURUUDLDULLDLDDLRULDLLDDRRLUDRLUURRLDRDLURUURRRRLRURLURULLLDRDDDRRRLDLDRLRDDUURRURDDDLRUURLUURLRDUDDDLLDUURLDLUDLLRRDUUDRLUULLUULDLURRUDLUURLRLRURDUDRRRDRLRUDLLLLURLULRLRLRRDDUDLRLDUUUULUDLLURRLURRDLRURRRULDDLLLRLRDLUDLLDDRULDUULRDDUUDDUDLURDULLDUDDLULRULDRLDDULDULLUDLULUDRURRR...

output:

893000

result:

ok 1 number(s): "893000"

Test #8:

score: 0
Accepted
time: 22ms
memory: 51708kb

input:

1
1000 1000 460035
RDDUURDULDDLDDLDDLDRRULLRLUURLURRRDRUDDDRDLDLDULUDLRLLRRLRRURRRDLRLUDRDURULDRRDDDDDDLRLDULUULDUDRLLUUUURUUDRURLRRULDRDRUUUUULULRURDDRLRULLLRDRRULUDDUDDLLLRDRUULUUDDRLURDLDURRDLRRLDRRUDLUULRDLURULLDLRLLDDURDUDLDULDLLRULRDLRLUULLUDRUDDDLRRDULULLRUURLUURRLLLLRLDRURLLRLDRRDDDRLUUUUDUL...

output:

417

result:

ok 1 number(s): "417"

Test #9:

score: 0
Accepted
time: 8ms
memory: 36224kb

input:

1
1000 1000 992010
LLLLLDLDRRLUDRR

output:

1999

result:

ok 1 number(s): "1999"

Test #10:

score: 0
Accepted
time: 12ms
memory: 36080kb

input:

1
1000 1000 919600
LLDLRUDRLURRUDRDRRDLRUDLRRRUUULDLDURDDDRUURRRLLURULDRLRLULLULDRULULRLRRRURLDDDRUUULUDLLLLRRLLRDDRDULUDLRLRLDRLUDUDURRULUULLDULUULDLLDRDULUDLDULDDUULDDRRURDRDULRRLDRRDUURURRLUUUDRRLDRRDDLULRDDLDLLRLRLLLRULUUUURRRLDLRUDRRLRURDRLDULLLUDRULLDLDRRUUDLRRLLRLDDLUDLRLRRURUUDUULUDURDURRLUU...

output:

944

result:

ok 1 number(s): "944"

Test #11:

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

input:

1
1000 1000 804351
DLRLDLLLLUDRDURRLDDRRLRUULURURDDDRDLRUDDULRRLLULURDRUUDRURRLURRRDRURRDRLULRDLRRDRRDDUDLUDLDULRUURRLRUUDRLDDRDDUUDULUULUUUDLRURULLRDUUDDDRRLDRUDDUUDRURLRDRUDLRLDDRRLLRLRDUDDULLULRLLDDUDDDUULDULLRRULULDUUULUDRRDRLUDLRRDDUDLRRDDLDLDRUULRRRRRLRLULLRDDRDDDULDRRURUDDLURLRLURLRDRULUDULUU...

output:

640000

result:

ok 1 number(s): "640000"