专栏文章

题解:P1152 欢乐的跳

P1152题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@miofykmr
此快照首次捕获于
2025/12/02 18:34
3 个月前
此快照最后确认于
2025/12/02 18:34
3 个月前
查看原文
排序入门题。

题意简述

给出一个序列 aa,求此序列相邻两个元素的差是否在 [1,n1][1, n - 1] 之间。

思路

首先我们能想到桶,但此题 aia_i 实在太大了,不能接受。
那我们就先开 bb 数组表示相邻两个式子之差,可以得到 b[i] = abs(a[i + 1] - a[i])
然后将 bb 数组排序,得到有序数列,最后循环判定 bib_i 是否等于 ii 即可。

代码

CPP
#include<bits/stdc++.h>
using namespace std;

long long a[1005], b[1005];

int main(){
	long long n;
	cin >> n;
	for(int i = 1; i <= n; i++)	
		cin >> a[i];
	for(int i = 1; i < n; i++)
		b[i] = abs(a[i] - a[i + 1]);
	sort(b + 1, b + n);
	for(int i = 1; i < n; i++)
		if(b[i] != i) {
			cout << "Not jolly";
			return 0;
		}
	cout << "Jolly";
	return 0;
} 

评论

1 条评论,欢迎与作者交流。

正在加载评论...