Rabbits UVALive - 8211

这是一个关于算法解析的问题,博客介绍了如何解决一个与兔子跳跃相关的问题。给定n只兔子的位置,每只兔子可以跳到相邻兔子之间,求解最多能跳多少次。解决方案是计算所有相邻兔子之间的距离之和,减去最小距离,得出答案。代码示例中展示了如何利用C++实现这一算法。
摘要由CSDN通过智能技术生成

Rabbits UVALive - 8211

题意:

n个兔子的位置,兔子每次可以跳到两个兔子之间,问最多可以跳多少下?

题解:

求出所有相邻两数的间隔,然后减去最小间隔就是答案

代码:

#include <bits/stdc++.h>
using namespace std;
#define asd cout<<" SB "<<endl;
#define ll long long
#define INF 0x3f3f3f3f
const int maxn=600;
int a[maxn];
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int n;
		scanf("%d",&n);
		int minn=1e9;
		ll sum=0;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			if(i>1){
				minn=min(a[i]-a[i-1]-1,minn);
				sum+=a[i]-a[i-1]-1;
			}
			
		}
		sum-=minn;
		printf("%lld\n",sum);
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值