专栏文章
题解:P13059 [GCJ 2020 #1C] Overexcited Fan
P13059题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miozf11f
- 此快照首次捕获于
- 2025/12/03 03:39 3 个月前
- 此快照最后确认于
- 2025/12/03 03:39 3 个月前
非常简单的一道题,那就来水一篇题解。
思路
我们只需要模拟小猫的行径,并且每走一步,比较此时两人间的曼哈顿距离(即水平距离加竖直距离)以及你在这段时间内能走的最远距离,如是能走到,则输出此刻的时间;反之,输出 。
代码不难,但一定一定不能忘记计算曼哈顿距离要加绝对值。
CPP#include<bits/stdc++.h>
#define man main //纯玩,小朋友不要模仿
using namespace std;
int pd(int x,int y,string s) //写成函数可以更好地处理IMPOSSIBLE的情况
{
for(int i = 0;i < s.size();i++)
{
if(s[i] == 'N') y++;
else if(s[i] == 'S') y--;
else if(s[i] == 'E') x++;
else if(s[i] == 'W') x--;
if(abs(x) + abs(y) <= i + 1) return i + 1; //绝对值!!!
}
return 0;
}
int man()
{
int t;
cin >> t;
for(int l = 1;l <= t;l++)
{
int x,y;
string s;
cin >> x >> y >> s;
int t = pd(x,y,s);
cout << "Case #" << l << ": ";
if(t) cout << t << endl;
else cout << "IMPOSSIBLE" << endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...