1 条题解

  • 0
    @ 2026-5-18 23:34:20

    题目大意

    题目传送门

    解题思路

    第一眼看题目会发现完全没有思路。实质上所谓逆时针和顺时针只与转向的次数与方向有关。由于题目保证 John 一定走了一圈。毫无疑问一次左转和一次右转后行走方向不变。

    仔细观察得到:可统计左转(记为 1-1)和右转(记为 +1+1)的个数记为 ansans。若 ansans 大于 00 输出 CW,否则输出 CCW。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int ans;
    int init(char a,char b){
    	if(a=='N'&&b=='E')return 1;
    	if(a=='E'&&b=='S')return 1;
    	if(a=='S'&&b=='W')return 1;
    	if(a=='W'&&b=='N')return 1;
    	return -1;
    }
    signed main(){
    	int n;
    	string s;
    	cin>>n;
    	while(n--){
    		ans=0;
    		cin>>s;
    		for(int i=1;i<s.length();i++){
    			if(s[i-1]!=s[i])//与前一个字符不同再判定转弯方向
    			ans+=init(s[i-1],s[i]);
    		}
    		if(ans>0)cout<<"CW\n";
    		else cout<<"CCW\n";
    	}
    }
    
    • 1

    信息

    ID
    7059
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    42
    已通过
    17
    上传者