• 3A. Shortest path of the king


    给你一个的棋盘,

    问:从一个坐标到达另一个坐标需要多少步?
    每次移动可以是八个方向。
     
    #include <iostream>
    #include <cmath>
    #include <algorithm>
    #include <string>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <cstdlib>
    using namespace std;
    typedef long long LL;
    const LL INF = 0xffffff;
    const int maxn = 1005;
    const LL MOD = 1e9+7;
    
    void solve(int sx,int sy,int ex,int ey)
    {
        int x = ex - sx;
        int y = ey - sy;
        int n = min(abs(x), abs(y));
        int step =  max(abs(x), abs(y)) ;
        printf("%d
    ", step);
        for(int i=1; i<=n; i++)
        {
            if(x > 0 && y > 0) puts("RU");
            if(x > 0 && y < 0) puts("RD");
            if(x < 0 && y > 0) puts("LU");
            if(x < 0 && y < 0) puts("LD");
        }
        n = max(abs(x), abs(y)) - n;
    
        for(int i=1; i<=n; i++)
        {
            if( abs(x) > abs(y) && x > 0) puts("R");
            if( abs(x) > abs(y) && x < 0) puts("L");
            if( abs(y) > abs(x) && y > 0) puts("U");
            if( abs(y) > abs(x) && y < 0) puts("D");
        }
    }
    
    int main()
    {
        char str[5];
        int sx, sy, ex, ey;
        scanf("%s", str);
        sx = str[0] - 'a' + 1;
        sy = str[1] - '0';
        scanf("%s", str);
        ex = str[0] - 'a' + 1;
        ey = str[1] - '0';
        solve(sx, sy, ex, ey);
    
        return 0;
    }

  • 相关阅读:
    CV大牛/实验室主页
    mendeley使用技巧
    卷积理解与思考
    CMake构建OpenGL项目
    信号与系统学习(2)-跃阶信号
    信号与系统学习(1)-正弦信号和指数信号
    txt转换为mat
    matlab取整函数
    三维观察流水线的理解
    C#中文和UNICODE字符转换方法
  • 原文地址:https://www.cnblogs.com/chenchengxun/p/4841590.html
Copyright © 2020-2023  润新知