1200*B. Interesting Subarray(贪心&规律)

Problem - 1270B - Codeforces

解析:

可以发现,对于某个符合条件的数列,如果两个最值不在两端,那么可以删去两端多余的元素直到两个最值在两端为止。

我们观察某两个相邻元素a、b,可以发现这两个元素组成的序列成立的条件为abs(b-a)>=2

再观察三个元素a、b、c,可以发现成立条件为abs(c-a)>=3,即a、b、c三个元素不是连续的数字即可。

可以证明更长的序列显然,只需要符合有任意两个相邻元素大于等于2即可成立。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int t,n,a[N]; 
signed main(){
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		int f=0;
		for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
		for(int i=1;i<n;i++){
			if(abs(a[i]-a[i+1])>=2){
				f=1;
				puts("YES");
				printf("%lld %lld\n",i,i+1);
				break;
			}
		}
		if(!f) puts("NO");
	}
	return 0;
}
相关推荐
小羊没烦恼!5 分钟前
【译】利用Asp.net MVC处理文件的上传下载
开发语言·缓存·c#·word·powerpoint·.net
土星云SaturnCloud5 分钟前
HRNet-pose 算法全解析:从高分辨率网络原理到土星云 SE110S 边缘部署实战
服务器·人工智能·算法·ai·边缘计算
ShineWinsu7 分钟前
对于Redis:Redis特性以及应用场景的解析
linux·c++·redis·缓存·高并发·分布式系统·key-value
bksczm8 分钟前
零基础面试题1
jvm·数据结构·算法
-森屿安年-11 分钟前
买卖股票的最佳时机
c++·贪心算法
m0_7393128712 分钟前
【自动驾驶与机器人技术】之惯性导航与组合导航
算法·机器人·自动驾驶
时间的拾荒人12 分钟前
Qt 信号与槽机制详解(二):连接方式详解与面试指南
开发语言·qt·面试
霸道流氓气质15 分钟前
LangGraph式图编排引擎Java实现:状态机模型、Checkpoint恢复与生产级落地实战
java·开发语言·数据库
驭渊的小故事19 分钟前
牛客网算法刷题笔记:哈希表、贪心与动态规划实战
笔记·算法·散列表
2601_9622186120 分钟前
C++ AVL树概念与实现详解
开发语言·c++