Content

有一个兔子拖着一个盒子在走,每秒钟可以带着盒子走一个单位,也可以不带着盒子走一个单位。当且仅当兔子和盒子的距离不超过 \(1\) 时可以带着盒子走一个单位。现给出 \(t\) 次询问,每次询问给出四个整数 \(x_1,y_1,x_2,y_2\),试求出将盒子从 \((x_1,y_1)\) 拖到 \((x_2,y_2)\) 最少需要多少秒。

数据范围:\(1\leqslant t\leqslant 1000,1\leqslant x_1,y_1,x_2,y_2\leqslant 10^9\)。

Solution

谨以此纪念本人的第一场 CF。

我们根据三个情况来分类讨论:

  1. \(x_1=x_2\),此时直接向平行于 \(y\) 轴的方向移动即可,答案就是 \(|y_1-y_2|\)。
  2. \(y_1=y_2\),此时直接向平行于 \(x\) 轴的方向移动即可,答案就是 \(|x_1-x_2|\)。
  3. \(x_1\neq x_2\) 且 \(y_1\neq y_2\),此时先往一个方向走,再转到另一个方向去走,由题目可知,转向需要让兔子先移动 \(2\) 个单位,所以答案就是 \(|x_1-x_2|+|y_1-y_2|+2\)。

直接根据每个情况输出答案即可。

Code

int t, x1, y1, x2, y2;

int main() {
getint(t);
while(t--) {
int ans = 0;
getint(x1), getint(y1), getint(x2), getint(y2);
if(x1 == x2) ans = abs(y1 - y2);
else if(y1 == y2) ans = abs(x1 - x2);
else ans = abs(x1 - x2) + abs(y1 - y2) + 2;
writeint(ans), puts("");
}
return 0;
}

最新文章

  1. 鼠标 mouseover和mouseout事件
  2. ftp unable to fetch some archives,maybe run apt-get update or try with -- fix-missing?
  3. c.BIO连接器与NIO连接器的对比
  4. linux命令别名的使用
  5. UVa 1149 (贪心) Bin Packing
  6. leetcode:ZigZag Conversion 曲线转换
  7. shell编程的一些例子3
  8. (转) html块级元素和内联元素区别详解
  9. 把VS2010的智能代码提示和注解从英文变成中文
  10. struts2和struts1认识
  11. 3. leetcode 463 Island Perimeter
  12. SpringIOC和AOP简单概述
  13. canvas绘制环形进度条
  14. vs2017 代码格式化 文档排版 编辑 设置文档的格式
  15. Leetcode 999. 车的可用捕获量
  16. NOIP2012国王游戏(60分题解)
  17. 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录
  18. 图学ES6-6.数值的扩展
  19. java的HashMap 原理
  20. CentOS 6.4安装配置LAMP服务器

热门文章

  1. idea内存配置
  2. 解决texlive化学式转换镜像经常偶发性进程堆积导致卡顿问题
  3. 妹子始终没搞懂OAuth2.0,今天整合Spring Cloud Security 一次说明白!
  4. 36-Same Tree
  5. Python time&datetime模块
  6. 编程艺术第十六~第二十章:全排列/跳台阶/奇偶调序,及一致性Hash算法
  7. idea 启动debug的时候throw new ClassNotFoundException(name)
  8. A Child's History of England.45
  9. 零基础学习java------20---------反射
  10. 栈常考应用之括号匹(C++)