• CSU 1511 残缺的棋盘 第十届湖南省赛题


    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511

    题目大意:在一个8*8的棋盘中,给你一个起点位置和一个终点位置,同时也给你一个陷阱位置,问你从起点绕过陷阱到终点的最短距离。(可以上下左右走还可以斜走)

    解题思路:可以直接用搜索,也可以用数学知识来解决,我们之前学过,两点之间直接最短,所以当陷阱不在这条直线上的时候,我们就不用考虑陷阱了,直接是max(abs(x1-y1),abs(x2-y2))最终结果,

    但是如果陷阱在两条直线之间的话,只需要max(abs(x1-y1),abs(x2-y2))+1即可,这里要注意的是如果三点形成的直线是与X轴或Y轴平行的话,也是忽略陷阱。

    AC代码:

    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int main()
    {
     int x1,y1,x2,y2,x3,y3,ca=1;
     while(scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3)!=EOF)
     {
       int dis=0;
       if((((y3-y2==x3-x2)&&(y3-y1==x3-x1))||((y3-y2==x2-x3)&&(y3-y1==x1-x3)))&&(x3<max(x1,x2)&&x3>min(x1,x2))) dis=max(abs(x2-x1),abs(y2-y1))+1;
       else dis=max(abs(x1-x2),abs(y1-y2));
       printf("Case %d: %d
    ",ca++,dis);
     }
     return 0;
    }
  • 相关阅读:
    定时器
    Eclipse 启动时闪退问题解决方案
    VMware下安装centos6.7的步骤
    bin/mysqld: error while loading shared libraries: libnuma.so.1: 安装mysql
    CentOS系统bash: groupadd: command not found问题
    MyBatis Sql语句中的转义字符
    Postgresql 正则表达式
    JS生成GUID方法
    jqGrid 事件
    jqgrid 事件说明
  • 原文地址:https://www.cnblogs.com/www-cnxcy-com/p/5740851.html
Copyright © 2020-2023  润新知