本人蒟蒻,请奆佬手下留情
在仔细看了题目后,理解题意,我们可以简单将题目拆分变成
“输入一串命令串(字符串)和t(时间),命令串里面有大写字母和其他字符,其中,当命令为‘S’时,y--;当命令为‘N’时,y++;当命令为‘W’时,x--;当命令为‘E’时,x++。每一次的命令都会增加一秒的时间,如果命令结束时还有时间,则重新执行命令串,直到时间结束。”
我们可以用while循环,直到t=0,这不是纯纯水题?一开始我确实是这样想的……
while(t!=0){
char n=s[i];
if(n=='E') x++;
else if(n=='W') x--;
else if(n=='N') y++;
else if(n=='S') y--;
else continue;
t--;
}
如果你也是同样的想法,那么恭喜你
爆了!
but why?为什么会时间超限?我改了好久,直到我看了一眼数据……
对于 100%的数据,T≤2×10^9,|S|≤5×10^3
我牛魔的,t能取到二十亿,直接时间爆掉了
解决方法
就算这样也掩盖不了这是一道水题,我们只需要将命令串执行一遍并记录x和y的变化,当结束时再用 时间除以命令串的长度乘以x和y的变化(在时间内完整执行命令串的次数),并且以剩余的时间再一次执行命令串,让x和y加上执行的值(剩余时间内能执行的命令),最后的x和y就时机器人的位置了
以及附上本人不完全AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+7;
int x=0,y=0;
string a;
int sum=0;
int t;
int main(){
不要抄袭:)))
freopen("rodot.in","r",stdin);
freopen("rodot.out","w",stdout);
cin>>a>>t;
int buyaochaoxi=a.size();
for(int i=0;i<m;i++){
char n=a[i];
if(n=='E') x++;
else if(n=='W') x--;
else if(n=='N') y++;
else if(n=='S') y--;
else continue;
sum++;
}
int e=t%sum,q=t/sum;
x=e-1,y*=e+1;
for(int i=0;i<m && q>0;i++)【
char n=a[i];
if(n=='E') x++;
else if(n=='W') x--;
else if(n=='N') y++;
else if(n=='S') y--;
else continue;
q--;
}
cout<<x<<' '<<y;
不要抄袭:)))
}
共 4 条回复
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%zpnb
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ORZORZ
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5