zoukankan      html  css  js  c++  java
  • UVALive-8077 Brick Walls 找规律

    题目链接:https://cn.vjudge.net/problem/UVALive-8077

    题意

    有一个用砖头磊起来的墙,现在又有一只蚂蚁,想沿着砖缝从起点跑到终点。
    问最短路长度。

    思路

    找规律题,感觉这种题目应该是这样:

    1. 一开始大量找规律
    2. 对于很多种情况建议用转化的方式抽象出来一种情景
    3. 如果抽象不出来(情景变得复杂),赶紧就不要抽象了
    4. 如果可行最好打印一些数据,对着检查一下

    此题我们明显发现一共就只有两种情景(我们把起点放在上方,不影响题意):
    起点正下方有一条缝,和没有一条缝。
    对着图画每个点的距离即可,发现是个金字塔结构,金字塔内部是奇偶关系,外部是正常的哈密顿距离。
    就只有两个情景,就不要再抽象了,赶紧A掉为妙。

    提交过程

    WA 情景抽象失败
    AC 抽象毛线,直接写就完事

    代码

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int sx, sy, ex, ey;
    
    int solve(void){
        if (sy>ey){
            swap(sy, ey);
            swap(sx, ex);
        }
    
        int delta=abs(sy-ey), ans=0;
        if (sy%2==sx%2){
            if (ex<=sx+delta-1 && ex>=sx-delta+1){
                if (abs(sx+delta-1-ex)%2) ans+=2*delta;
                else ans+=2*delta-1;
            }else ans+=abs(sy-ey)+abs(sx-ex);
        }else{
            if (ex<=sx+delta-1 && ex>=sx-delta+1){
                if (abs(sx+delta-1-ex)%2==0) ans+=2*delta+1;
                else ans+=2*delta;
            }else ans+=abs(sy-ey)+abs(sx-ex);
        }
        return ans;
    }
    
    int main(void){
        while (scanf("%d%d%d%d", &sy, &sx, &ey, &ex)==4 && sx){
            // int n=6;
            // for (int i=1; i<=n; i++)
            //     for (int j=1; j<=n; j++){
            //         sx=2, sy=1;
            //         ex=j, ey=i;
            //         printf("x%d y%d %d
    ", ex, ey, solve());
            //     }
            printf("%d
    ", solve());
        }
    
        return 0;
    }
    
    
    Time Memory Length Lang Submitted
    None None 993 C++ 5.3.0 2018-08-24 10:46:40
  • 相关阅读:
    目标检测梳理:基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN(转)
    4. 基于深度学习的目标检测算法的综述(转)
    2. 滑动窗口和 Bounding Box 预测(转)
    1. 初步认识目标定位、特征点检测、目标检测(转)
    redux (一)
    react-todoMVC脚手架
    SVN提示图标详解
    react ( 二 )
    react入门(一)
    JavaScript奇技淫巧
  • 原文地址:https://www.cnblogs.com/tanglizi/p/9532950.html
Copyright © 2011-2022 走看看