[模拟] Jzoj P2499 东风谷早苗
题解
- 先弄出循环节里的x、y,然后乘上循环节的循环次数
- 最后再暴力做剩下的
代码
1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 long long t,ansx,ansy,x,y,k; 5 char s[5010]; 6 int main() 7 { 8 scanf("%s%lld",s+1,&t); 9 int len=strlen(s+1); 10 for (int i=1;i<=len;i++) 11 if (s[i]=='N') y++; else if (s[i]=='S') y--; else if (s[i]=='W') x--; else if (s[i]=='E') x++; 12 k=t/len,ansx=x*k,ansy=y*k; 13 for (int i=1;i<=t%len;i++) 14 if (s[i]=='N') ansy++; else if (s[i]=='S') ansy--; else if (s[i]=='W') ansx--; else if (s[i]=='E') ansx++; 15 printf("%lld %lld",ansx,ansy); 16 }