hdu6227Rabbits

昨天学jsp,学不下去了,就找了一道今年ICPC沈阳区的水题来做,但是卡壳在了题意的理解上,也是自己太粗心了,晚上回去想了半天没想明白,就看了下别人对题意的理解才恍然大悟



Problem Description
Here N (N ≥ 3) rabbits are playing by the river. They are playing on a number line, each occupying a different integer. In a single move, one of the outer rabbits jumps into a space between any other two. At no point may two rabbits occupy the same position.
Help them play as long as possible
 

Input
The input has several test cases. The first line of input contains an integer t (1 ≤ t ≤ 500) indicating the number of test cases.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers  a1  <  a2  <  a3  < ... <  aN  which are the initial positions of the rabbits. For each rabbit, its initial position
ai  satisfies 1 ≤  ai  ≤ 10000.
 

Output
For each case, output the largest number of moves the rabbits can make.
 

Sample Input
  
  
5 3 3 4 6 3 2 3 5 3 3 5 9 4 1 2 3 4 4 1 2 4 5
 

Sample Output
  
  
1 1 3 0 1
 

Source

题目大意:有n个兔子排成一列在河边玩游戏,每个兔子占有一个不同的数字,游戏规则是最外边的兔子,可以在其他任意两只兔子之间移动,求最多可以移动的次数,(一个兔子一个坑)。

思路:就是求出相邻两个兔子之间空位只和减去,最左边或最右边相邻两个兔子之间空位较小的那个,就得到问题的最大值。

#include <iostream>
#include <cstring>
using namespace std;
int a[501];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        memset(a,sizeof(a),0);
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        int s=0;
        for(int i=1;i<n;i++)
        {
            s+=a[i]-a[i-1]-1;
        }
        if(a[n-1]-a[n-2]<a[1]-a[0])
        cout<<s-(a[n-1]-a[n-2]-1)<<endl;
        else
        cout<<s-(a[1]-a[0]-1)<<endl;
    }
}

Problem Description
Here N (N ≥ 3) rabbits are playing by the river. They are playing on a number line, each occupying a different integer. In a single move, one of the outer rabbits jumps into a space between any other two. At no point may two rabbits occupy the same position.
Help them play as long as possible
 

Input
The input has several test cases. The first line of input contains an integer t (1 ≤ t ≤ 500) indicating the number of test cases.
For each case the first line contains the integer N (3 ≤ N ≤ 500) described as above. The second line contains n integers  a1  <  a2  <  a3  < ... <  aN  which are the initial positions of the rabbits. For each rabbit, its initial position
ai  satisfies 1 ≤  ai  ≤ 10000.
 

Output
For each case, output the largest number of moves the rabbits can make.
 

Sample Input
   
   
5 3 3 4 6 3 2 3 5 3 3 5 9 4 1 2 3 4 4 1 2 4 5
 

Sample Output
   
   
1 1 3 0 1
 

Source

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值