C. Arrow Path

原题链接

题解

1.由于没有指向外面的箭头,所以 (1,1) (1,2) 都是 >
2.每次移动两步,所以落点一定是距离原点曼哈顿距离为偶数的点,所以中转点一定是曼哈顿距离为奇数的点,所以枚举所有曼哈顿距离为奇数的点(不包括终点),只要其没有连续出现<,一定能过去

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        string s[2];
        cin>>s[0]>>s[1];
        int floor=1,flag=1;
        for(int i=2;i<n;i++)
        {
            if(s[floor][i]=='<'&&s[(floor+1)%2][i-1]=='<'&&!(floor==1&&i==n-1))
            {
                flag=0;
                break;
            }
            floor=(floor+1)%2;
        }
        puts(flag?"YES":"NO");
    }
    return 0;
}

posted @   纯粹的  阅读(104)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示