说说:此题要求求出从整数x到达整数y所要经过的最短步数,且第一步和最后一步必须为一,同一时候每一步都比前一步多一步,少一步或一样。如果想搞清楚每一步详细是如何走的,那么这道题是相当麻烦的。考虑到前后两步之间最多差一,那么一到最大数之间的每个数从左到右以及从右到左的时候必然都出现。那么我们能够预想如果这样一个数列。

1,2,3,....n-2,n-1,n,n-1,n-2....3,2,1,若数列的和小于y和x的差肯定是不行的。所以要调整n至刚好大于或等于y和x的差。显然当y与x的差恰好为数列的和那直接输出结果。否则构成y和x差的数列的最大值必然为n-1。这时,由于步数要最少,所以我们从最大的那个n-1開始一个一个尽量多的放数。终于把y-x的差放完之后,就可以求得最短步数。例:y-x=7,则可找到1,2,3,2,1是大于9的,那么8的数列中必存在1,2,1这种序列,这时7-4=4,最多能再放一个2。那还剩下一个1,最后填入就可以。

题目:

Steps

One steps through integer points of the straight line. The length of a step must be nonnegative and can be by one bigger than, equal to, or

如今你要通过几步从数轴的某点到达另外一点。每步的长度都是非负的并能够比前一步大一步,相等或小一步

by one smaller than the length of the previous step.

What is the minimum number of steps in order to get from x to y? The length of the first and the last step must be 1.

从x到达y的最少步数是多少?而且第一步和最后一步的长度一定为1

Input and Output

Input consists of a line containing n, the number of test cases. For each test case, a line follows with two integers: 0xy <
231. For

输入有一行包括一个整数n,是測试的组数。对于每组測试数据,一行有两个整数0xy <
231。对于每行測试数据

each test case, print a line giving the minimum number of steps to get from x to y.

输出一行给出从x到y的最少步数。

Sample Input

3
45 48
45 49
45 50

Sample Output

3
3
4

源码:

#include <stdio.h>

int n,x,y,q;

int main(){
int i,j,k,result; // freopen("input.txt","r",stdin);
scanf("%d",&n); while(n--){
scanf("%d%d",&x,&y); q=y-x;
if(q<=3){//小于三的特殊情况先处理
printf("%d\n",q);
continue;
} for(i=2;;i++)
if(i*i>=q)
break; if(i*i==q){
printf("%d\n",2*i-1);
continue;
}
else
i--; q-=i*i; result=2*i-1;
while(q){//从数列中最大的数開始放,放完为止
result+=q/i;
q=q-i*(q/i);
i--;
} printf("%d\n",result);
}
return 0;
}

Steps UVA 846的更多相关文章

  1. uva 846 - Steps

    找出步數與距離的關係即可得解. 0步最多能抵達的距離是0 1步最多能抵達的距離是1(1) 2步最多能抵達的距離是2(1 1) 3步最多能抵達的距離是4(1 2 1) 4步最多能抵達的距離是6(1 2 ...

  2. UVA题目分类

    题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics ...

  3. 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)

    // The 3n+1 problem (3n+1 问题) // PC/UVa IDs: 110101/100, Popularity: A, Success rate: low Level: 1 / ...

  4. PC/UVa 题号: 110106/10033 Interpreter (解释器)题解 c语言版

    , '\n'); #include<cstdio> #include<iostream> #include<string> #include<algorith ...

  5. uva 116 Unidirectional TSP (DP)

    uva 116 Unidirectional TSP Background Problems that require minimum paths through some domain appear ...

  6. UVA - 1153 Keep the Customer Satisfied(贪心)

    UVA - 1153 Keep the Customer Satisfied Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: ...

  7. UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)

    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...

  8. UVa 10795 - A Different Task 对称, 中间状态, 数位DP 难度: 3

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  9. [uva] 10067 - Playing with Wheels

    10067 - Playing with Wheels 题目页:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Ite ...

随机推荐

  1. memcached vs MySQL Memory engine table 速度比较_XMPP Jabber即时通讯开发实践_百度空间

    memcached vs MySQL Memory engine table 速度比较_XMPP Jabber即时通讯开发实践_百度空间 memcached vs MySQL Memory engin ...

  2. hadoop(六) - ZooKeeper安装与配置

    一. ZooKeeper配置 1.使用winscp上传zk安装包 zookeeper-3.4.5.tar.gz 2.解压安装包tar -zxvf zookeeper-3.4.5.tar.gz -C / ...

  3. 2388 Who&#39;s in the Middle(简单排序)

    训练计划的第一个问题,首先从水问题开始:排序的数组,中间数则输出. http://poj.org/problem?id=2388 冒泡排序: #include <iostream> usi ...

  4. Swift - 标签条(UITabBar)标签页控制器(UITabBarController)用法

    App底部的tab标签页可以方便的把功能模块划分清楚,只需点击相应的标签页就可以展示完全独立的视图页面,同时各标签页间的视图也可以进行数据交换.   TabBarItem系统自带图标样式(System ...

  5. YUV格式具体解释

    YUV是指亮度參量和色度參量分开表示的像素格式,而这样分开的优点就是不但能够避免相互干扰,还能够减少色度的採样率而不会对图像质量影响太大.YUV是一个比較笼统地说法,针对它的详细排列方式,能够分为非常 ...

  6. SmartDraw2008破解过程总结

    SmartDraw2008破解过程总结作者:chszs  原创转载请保留作者名. 按下列步骤完毕,保证能够支持中文. 一.所需软件:1)SmartDraw2008安装软件:2)SmartDraw200 ...

  7. spring配置日志

    原文:http://blog.csdn.net/xiejx618/article/details/41698913 参考:http://spring.io/blog/2009/12/04/loggin ...

  8. zend framework将zip格式的压缩文件导入并解压到指定文件

    html代码 <pre class="php" name="code"><fieldset> <legend>批量导入学生照 ...

  9. C++实现链栈的基本操作

    之前对顺序栈写了基本操作,认为有必要也动手练练栈的链表实现. 对于链栈,一般不会出现栈满的情况. 链栈头文件定义例如以下: #ifndef CSTOCK_H_ #define CSTOCK_H_ ty ...

  10. maven仓库总结,maven私服搭建

    配置pom.xml依赖包时在这里找包的描述: http://search.maven.org/#browse 以java为根目录. mvn archtype:generate -DgroupId=zt ...