题目链接: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. ASP组件AspJpeg(加水印)生成缩略图等使用方法

    ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...

  2. 互联网组织的未来:剖析 GitHub 员工的任性之源

    转自:http://innolauncher.com/github/ 互联网组织的未来:剖析 GitHub 员工的任性之源 This entry was posted in Blogon 一月 4, ...

  3. 漫谈 Google 的 Native Client(NaCl) 技术(二)---- 技术篇(兼谈 LLVM)

    转自:http://hzx5.blog.163.com/blog/static/40744388201172531637729/ 漫谈 Google 的 Native Client(NaCl) 技术( ...

  4. C语言与java的区别

    相同的地方: 1.语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似 2.编程的熟练程度就是对语言程序库的掌握程度: 从某种程度上来说,编程语言都是由语法和相应的程序 ...

  5. oracle 有个xe版本

    oracle 有个xe版本 学习了:http://blog.csdn.net/angiexia/article/details/8615771

  6. Android仿IOS的AssistiveTouch的控件EasyTouch实现

    概述: 之前我听到过一则新闻,就是说Ipone中的AssistiveTouch的设计初衷是给残疾人使用的. 而这一功能在亚洲(中国)的使用最为频繁. 虽不知道这新闻的可靠性,但无庸置疑的是它的确给我们 ...

  7. Loadrunner得到server參数

    首先你得确定你所监视的server与你的測试机是在同一个局域网内, 监控windows系统: 1.监视连接前的准备工作         1)进入被监视windows系统.开启下面二个服务Remote ...

  8. android Service中多线程交互

    android 的service和activity是执行在UI主线程的. 在android线程中,仅仅有主线程即UI线程有自己的默认的消息队列.子线程须要创建自己的消息队列.并把消息发给队列,并循环起 ...

  9. 怎样删除 Windows.old 目录

    问题描写叙述: windows系统升级一向会造成一个问题,就是在系统盘中会保留windows的设置文件:windows.old,会占用非常大存储空间. watermark/2/text/aHR0cDo ...

  10. edit filter rules in sql source control

    https://documentation.red-gate.com/soc6/common-tasks/exclude-objects-using-filters 如果有人上传了filter,nam ...