首页 > 专题系列 > Java解POJ > POJ 2590 Steps [解题报告] Java
2013
11-11

POJ 2590 Steps [解题报告] Java

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.

输入:

Input consists of a line containing n, the number of test cases.

输出:

For each test case, a line follows with two integers: 0 <= x <= y < 2^31. For each test case, print a line giving the minimum number of steps to get from x to y.

样例输入:

3
45 48
45 49
45 50

样例输出:

3
3
4

解题代码:

//* @author: [email protected]
import java.util.Scanner;
public class Main
{
 public static void main(String[] args)
 {
	Scanner in=new Scanner(System.in);
	int a=in.nextInt();
	for(int i=0;i< a;i++)
	{
          long x=in.nextLong();
	  x=in.nextLong()-x;
	  long b=(long)Math.sqrt(x);
	  long ans=-1;
	  if(b==0) ans=0;
	  else if(b*b==x)ans=2*b-1;
	  else if(x<=b*b+b)ans=2*b;
	  else ans=2*b+1;
	  System.out.println(ans);
	 }
  }
}

  1. Good task for the group. Hold it up for every yeara??s winner. This is a excellent oppotunity for a lot more enhancement. Indeed, obtaining far better and much better is constantly the crucial. Just like my pal suggests on the truth about ab muscles, he just keeps obtaining much better.

  2. a是根先忽略掉,递归子树。剩下前缀bejkcfghid和后缀jkebfghicd,分拆的原则的是每个子树前缀和后缀的节点个数是一样的,根节点出现在前缀的第一个,后缀的最后一个。根节点b出现后缀的第四个位置,则第一部分为四个节点,前缀bejk,后缀jkeb,剩下的c出现在后缀的倒数第2个,就划分为cfghi和 fghic,第3部分就为c、c