hdu6227Rabbits

本文解析了一道关于N个兔子在数轴上移动的游戏问题。通过分析游戏规则和给出的样例输入输出,提供了清晰的解题思路及代码实现,旨在帮助读者理解如何计算兔子能够进行的最大移动次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天学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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值