您的位置:首页 > 其它

CF 115B. Lawnmower

2015-11-28 13:49 218 查看
CF 115B. Lawnmower http://www.codeforces.com/problemset/problem/115/B
贪心。由于每次必须将整行的走完,而且不能变换方向,由此可知每次都是走极端。

非常好的题。每次必须从端点开始扫。

偶数行(0也算)从左开始

奇数行从右开始往左扫。记录上一次的位置。坐标绝对值之差即为距离。

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
int n,m;
while(cin>>n>>m)
{
int i,j;
char g[155][155];
for(i=0;i<n;i++)
cin>>g[i];
int x=0,y=0,s=0;
for(i=0;i<n;i++)
{
if(i%2==0)j=0;
else j=m-1;
for(;j>=0 && j<m;)
{
if(g[i][j]=='W')
{
s+=abs(i-x)+abs(j-y);
x=i;
y=j;
}
if(i%2==0)j++;
else j--;
}
}
cout<<s<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: