NC14417. 割草机
描述
输入描述
第一行n,m
接下来n行每行一个字符串表示矩阵。
n,m<=150
输出描述
一行一个整数表示答案。
示例1
输入:
4 5 GWGGW GGWGG GWGGG WGGGG
输出:
11
示例2
输入:
3 3 GWW WWW WWG
输出:
7
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 412K, 提交时间: 2023-06-28 11:16:52
#include<bits/stdc++.h> using namespace std; int main() { int n,m;cin>>n>>m; string a; long long ans=0; int q=0;int w=0; for(int i=0;i<n;i++){ cin>>a; if(i%2!=0){ for(int j=m-1;j>=0;j--){ if(a[j]=='W') {ans+=abs(q-j);ans+=abs(w-i);w=i;q=j;} } }else { for(int j=0;j<m;j++){ if(a[j]=='W') {ans+=abs(q-j);ans+=abs(w-i);w=i;q=j;} } } } cout<<ans; }
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 468K, 提交时间: 2023-07-25 14:14:28
#include<bits/stdc++.h> using namespace std; int main(){ int n,m,ans=0; cin>>n>>m; string s; bool f=1; int x=0,y=0; for(int i=0;i<n;i++){ cin>>s; if(f) { for(int j=0;j<m;j++){ if(s[j]=='W'){ ans+=abs(i-x)+abs(j-y); x=i,y=j; } } } else { for(int j=m-1;j>=0;j--){ if(s[j]=='W'){ ans+=abs(i-x)+abs(j-y); x=i,y=j; } } } f=!f; } cout<<ans<<endl; return 0; }