题意:当前在看书的第 x 页,每次可以向前或者向后翻 d 页,这个书一共 n 页,问能否用最小操作翻到第 y 页。

题解:三种情况:1、直接翻能到的一定最短。 2、先翻到第一页,然后往后翻,翻到第 y 页。3、先翻到第 n 页,然后往前翻,翻到第 y 页。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; int main()
{
int ans,t,n,x,y,d;
cin >> t;
while(t--)
{
ans = 0;
cin >> n >> x >> y >> d;
if(abs(x-y) %d == 0)
{
ans = abs(x-y) / d;
printf("%d\n",ans);
continue;
}
else {
int x1;
if(x % d == 0) x1 = x /d;
else x1 = x / d +1;
if((y-1) % d == 0)
{
x1 += (y-1) / d;
}
else x1 = -1;
int x2;
if(abs(n - x) % d == 0) x2 = abs(n - x) / d;
else x2 = abs(n - x) / d + 1;
if((n-y)%d==0)
{
x2 += (n-y)/d;
}
else x2 = -1;
if(x1 == -1 && x2 == -1) ans = -1;
else if(x1 == -1 && x2 >= 0) ans = x2;
else if(x2 == -1 && x1 >= 0) ans = x1;
else ans = min(x1,x2);
printf("%d\n",ans);
}
} return 0;
}

最新文章

  1. MUI APP防止登陆页面出现白屏
  2. SharePoint 2013 必备组件之 Windows Server AppFabric 安装错误
  3. python_爬虫一之爬取糗事百科上的段子
  4. java.lang.UnsupportedOperationException: Can&#39;t convert to dimension: type=0x12
  5. WCF--安全小见解...
  6. HMM 自学教程(二)生成模型
  7. 【原创】用Pwnage + Redsnow 制作完美越狱固件
  8. 在C# WinForm程序中创建控件数组及相应的事件处理
  9. Linux下搭建Oracle11g RAC(6)----安装Grid Infrastructure
  10. Repeater控件实现数据绑定,并实现分页效果
  11. 第1阶段——关于u-boot目标文件start.o中.globl 和.balignl理解(3)
  12. Nginx+uWSGI+Django环境配置
  13. Linux进程管理 - ps,top,pstree,signal,kill,killall举例演示
  14. 字符和字符串在Java中的旅程
  15. qemu中使用9p,支持host和guest中共享目录【转】
  16. 搭建elasticsearch可视化插件
  17. 【C++】STL算法之remove_if
  18. CSS快速入门-组合选择器
  19. UVALive 6889 City Park 并查集
  20. Zookeeper之Curator(1)客户端基本的创建,删除,更新,查找操作api

热门文章

  1. oracel 查询语句
  2. 1+X证书学习日志——javascript打印九九乘法表(基础算法)
  3. 什么是SAP Graph
  4. django后台标题替换
  5. table标签修改tr,td标签的行距
  6. 2013.5.21 - KDD第三十三天
  7. 彻底终结MySQL同步延迟问题
  8. suse双网卡绑定
  9. LG3768 简单的数学题
  10. 【IT】在线技术工具