社区讨论
捞
学术版参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjob0kf
- 此快照首次捕获于
- 2025/11/04 05:49 4 个月前
- 此快照最后确认于
- 2025/11/04 05:49 4 个月前
有没有大佬帮忙改好啊
大样例如下:
CPP10
100 12 16
LDRLLRLRDDDLDDLLLRDLLUDULRUUULLDDLLDDRRRLUUDLRRRDUDRDLDLULDDRLRDUDUUUUDURLUDLLURRRRLRRLULUDRRRUDDLUD
100 13 10
DDUULURRDDLRDUDLLDLRDRLDRRRLRRUUURDURRLLULUUDUULLRRURRRULUUUURUUURRRUULRUURRDDULLLLRUDRLUULDLDRRDDLU
100 15 9
RUDLLRUDLRDDURLURLDULRDRRRUDULDLLURLUURLLDRUDDULLLDDRRRLLRDLLLRUDLLDLLRRDDRLLDDDDRRDRRRRDDDULURDULUL
100 13 18
RLUUURUULDUURLLLDRULLLDRLUDDDLRRUDLLRURDRUUDDURLUUDRRUDLLRDURLDRURDRLLDLRRLDLUULUULLDURUUURDRLRLLDRD
100 3 3
UULDULLLLLLUULLRLRURRUURRLRRRLLLLRRLLULUDUURUDDULLDLRRDLLLDLULLLUULRRRRLRRRURULDDLURLURUDDLRRLDRRRUL
100 1 3
RRLLLRLLLRUDRRLLRDLUURRUURDDRRULLURDLDLUURLLLULDDLLRLULLRDUDLLRUDDRLLUULRULLDURDDULUDLDDDLDDDDRDRLRR
100 8 0
DRDDULLRRLLUDLUDLLRLRLRRUUULDLRLURLDDRLRLUDDDLURRLRRLRDDDUDDDRLRRURDULLLLURLDDDDRULLLLUURDLRULDRDLDL
100 11 17
LRDRDRDDRLLUDULDRRULRRUULLUDLURRRRRLRLRUUURLDDDLRRDURRLDDUUDUDDLDRLRLUDLLDRDDUDRRDUDULLUUDRURLLLULRR
100 4 4
ULDUUDURURDRRRLRRLLULRDLDLDRRDRDDDLDRDRUUDRDDUDLUDDDDLDRRUULDRLLURLURRLUULURRULDDURDRDURLRLRRDRUDDDR
100 8 17
RDLULDUDULDLULDLUDDDLULRRDLLUDDDUDLRRDLURDRULRLLRLDDDULLUDUUDULRLDLUDUURDLDDDULDDDRDLUDDUULUDRDLUDUU
CPP29
Impossible
Impossible
Impossible
12
13
Impossible
21
Impossible
Impossible
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int n,x,y;
char str[N];
int sx[N],sy[N];
bool check(int len){
for(int i=1;i+len-1<=n;++i){
int j=i+len-1;
int xx=sx[n]-(sx[j]-sx[i-1]),yy=sy[n]-(sy[j]-sy[i-1]);
if(abs(x-xx)+abs(y-yy)<=len and (len-abs(x-xx)-abs(y-yy))%2==0) return true;
}
return false;
}
void solve(){
cin>>n>>x>>y;
cin>>str+1;
if(abs(x-y)>n or (n-x-y)%2){
cout<<"Impossible"<<endl;
return ;
}
for(int i=1;i<=n;++i){
sx[i]=sx[i-1];
sy[i]=sy[i-1];
if(str[i]=='U') sy[i]++;
else if(str[i]=='D') sy[i]--;
else if(str[i]=='L') sx[i]--;
else if(str[i]=='R') sx[i]++;
}
int l=0,r=n;
while(l<r){
int mid=l+r>>1;
if(check(mid)) r=mid;
else l=mid+1;
}
cout<<l<<endl;
return ;
}
signed main(){
int T;
cin>>T;
while(T--){
solve();
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...