QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#706408#6699. Wandering Robotfutarian#AC ✓474ms4008kbC++141.1kb2024-11-03 11:09:122024-11-03 11:09:13

Judging History

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

  • [2024-11-03 11:09:13]
  • 评测
  • 测评结果:AC
  • 用时:474ms
  • 内存:4008kb
  • [2024-11-03 11:09:12]
  • 提交

answer

#include "bits/stdc++.h"
using namespace std;
const int Len = 2e5 + 5;
#define ll long long
int n,m;
char s[Len];
inline ll Iabs(ll x){if(x < 0) x = -x;return x;}
signed main()
{
	int T;scanf("%d",&T);
	while(T --)
	{
		scanf("%d %d",&n,&m);
		scanf("%s",s + 1);
		int mx = 0 , rt = 0;
		ll x = 0 , y = 0 , as = 0;
		for(int i = 1 ; i <= n ; i ++)
		{
			if(s[i] == 'U') y ++;
			else if(s[i] == 'D') y --;
			else if(s[i] == 'L') x --;
			else x ++;
		}
		ll ox = x , oy = y;
		int k = min(m , 100);
		x = y = 0;
		for(int p = 1 ; p <= k ; p ++)
			for(int i = 1 ; i <= n ; i ++) 
			{
				if(s[i] == 'U') y ++;
				else if(s[i] == 'D') y --;
				else if(s[i] == 'L') x --;
				else x ++;
				as = max(as , Iabs(x) + Iabs(y));
			}
		x = 1ll * (m - k) * ox , y = 1ll * (m - k) * oy;
		as = max(as , Iabs(x) + Iabs(y));
		for(int p = 1 ; p <= k ; p ++)
			for(int i = 1 ; i <= n ; i ++) 
			{
				if(s[i] == 'U') y ++;
				else if(s[i] == 'D') y --;
				else if(s[i] == 'L') x --;
				else x ++;
				as = max(as , Iabs(x) + Iabs(y));
			}
		printf("%lld\n",as);
	}
	return 0;
}

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

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

input:

2
3 3
RUL
1 1000000000
D

output:

4
1000000000

result:

ok 2 number(s): "4 1000000000"

Test #2:

score: 0
Accepted
time: 474ms
memory: 4008kb

input:

10307
33 374631889
RUDUUDLDDUULULDRDDRRRRDDDLRURULDL
9 40711970
UUDLRDRDD
3 111498848
LRL
14 804199874
LRRLLRULRUURUU
44 936610223
ULDRUULRRDLRRLRLRLRDUDDUDDUUDDLRUUDRUURLULUD
15 669124042
RUULRLDDULUDRDR
47 500758328
LRULULLLLUDURLRRDLDDLUUDURUDDLLLLDRLULURDULRDLU
18 581526184
DLLUDUUULUDULULRLR
47...

output:

1873159447
122135910
111498848
4825199244
3746440893
669124044
5508341608
4652209473
5606278385
8301130033
3707957881
2821884978
463006533
1581485530
881213211
236693627
816980016
4406947601
1057578188
1455154265
4107693543
5705944723
3424946932
1154164548
4496114815
3733695266
6323077602
2262619671...

result:

ok 10307 numbers