题目链接: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\n", ex, ey, solve());
// }
printf("%d\n", solve());
} return 0;
}
Time Memory Length Lang Submitted
None None 993 C++ 5.3.0 2018-08-24 10:46:40

UVALive-8077 Brick Walls 找规律的更多相关文章

  1. UVaLive 7269 Snake Carpet (找规律,模拟)

    题意:给定一个数字n,表示有n条蛇,然后蛇的长度是 i ,如果 i 是奇数,那么它只能拐奇数个弯,如果是偶数只能拐偶数个,1, 2除外,然后把这 n 条蛇, 放到一个w*h的矩阵里,要求正好放满,让你 ...

  2. UVALive 6862 Triples (找规律 暴力)

    Triples 题目链接: http://acm.hust.edu.cn/vjudge/contest/130303#problem/H Description http://7xjob4.com1. ...

  3. 找规律 UVALive 6506 Padovan Sequence

    题目传送门 /* 找规律:看看前10项就能看出规律,打个表就行了.被lld坑了一次:( */ #include <cstdio> #include <algorithm> #i ...

  4. UVALive - 3722 找规律

    题意:找规律 题解:找规律 结论是\(a^n(x-1)-\sum_{i=1}^{n-1}a^i \mod\ c\) #include<iostream> #include<algor ...

  5. 2015 acm taipei L-Reward the Troop(uvalive 7465)(找规律)

    原题链接 就大概说的是一个将军要给部下发勋章,他的部下以和别人不一样的勋章为荣,但是他没这么多钱,所以问你最少要多少钱 要求是每个人的上司是他的上两级,他的下两级是他的部下,每个人的勋章不能和他的上司 ...

  6. UVaLive 6847 Zeroes (找规律,水题)

    题意 :给定一个范围,然后让你求在这个范围内所有的数的阶乘末尾0的个数有多少种. 析:找规律,写几个就会发现每隔5个会增加一个0,因为要么乘10了,要么乘5了. 代码如下: #pragma comme ...

  7. UVALive 6270 Edge Case(找规律,大数相加)

    版权声明:本文为博主原创文章,未经博主同意不得转载. vasttian https://blog.csdn.net/u012860063/article/details/36905379 转载请注明出 ...

  8. hdu 3951 - Coin Game(找规律)

    这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...

  9. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

随机推荐

  1. weex手机端安全键盘

    github地址:weexSafeKeyboard 效果图: 技术依赖:框架:weex+vue 弹出层:weex-ui 图标:iconfont 说明:1.如果不想用到weex-ui,可以把inputk ...

  2. [剑指offer] 50. 第一个只出现一次的字符 + map,hashmap 及其区别

    class Solution { public: int FirstNotRepeatingChar(string str) { map<char,int>mp; ;i<str.si ...

  3. spring 组件注册

    一.声明配置类和注册 bean /** * 配置类 == applicationContext.xml 配置文件 * @author Administrator * */ //@Configurati ...

  4. 获取某个参数的值 value

    Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order ...

  5. nodejs-路由(待补充)

    path Router 1 2 3 4 5 var express = require('express'); var Router = express.Router(); Router.get('/ ...

  6. 工具-常用VS插件

    工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节, ...

  7. 剑指Offer面试题33(java版):把数组排成最小的数

    题目:输入一个正整数数组.把数组里面全部的数字拼接排成一个数,打印能拼接出的全部数字中的一个.比如输入数组{3,32.321}.则打印出这3个数字能排成的最小数字321323. 这个题目最直接的做法应 ...

  8. “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不同意的问题

    "XXX.Index"不扩展类"System.Web.UI.Page",因此此处不同意的问题 原因:设计页面继承的路径和后台.cs页面类的路径不一致造成的 看下 ...

  9. [Erlang危机](4.2)Remsh

    原创文章,转载请注明出处:server非业余研究http://blog.csdn.net/erlib 作者Sunface 联系邮箱:cto@188.com Remsh There's a mechan ...

  10. POJ 题目3461 Oulipo(KMP)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26479   Accepted: 10550 Descript ...