AcWing 4318. 最短路径

题目链接

https://www.acwing.com/problem/content/4321/

题目思路

最开始做的时候只考虑了有无环和走重复路径
但是少考虑了不能走相邻路径
所以只需要将每次走过路径的上下左右四个方向记录一下,只要有一块被重复走过即为不合法路径

题目代码

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;
int st[100][100];

int main()
{
    memset(st, false, sizeof st);
    int x = 50, y = 50;
    int c1 = 0, c2 = 0, c3 = 0, c4 = 0;
    string a;
    cin >> a;
    for(int i = 0; i < a.size(); i ++ )
    {
        
        if(a[i] == 'R') y ++ , c1 ++ ;
        if(a[i] == 'U') x ++ , c2 ++ ;
        if(a[i] == 'D') x -- , c3 ++ ;
        if(a[i] == 'L') y -- , c4 ++ ;
        st[x][y] ++ ;
    }
    
    puts("YES");
    return 0;
}
posted @   vacilie  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
主题色彩