1 条题解

  • 0
    @ 2025-8-24 22:28:42

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar tzl_Dedicatus545
    忙碌着 无为着 继续

    搬运于2025-08-24 22:28:42,当前版本为作者最后更新于2021-12-10 10:17:33,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    1.题目分析

    这道题首先可以发现,要让最大减最小最小,其实就是让最大值最大,最小值最小,于是我们考虑贪心,容易发现如下的性质:

    $$\max{a_i,a_{i+1}\cdots a_j} \leq \max{a_i,a_{i+1}\cdots a_j,a_{j+1}} $$$$\min{a_i,a_{i+1}\cdots a_j} \geq \min{a_i,a_{i+1}\cdots a_j,a_{j+1}} $$

    所以容易发现,区间长度越短越好,又因为 l<rl<r ,所以区间长度最小为 22

    AC Code

    //By: Luogu@⚡炭治郎⚡(308854)
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int a[100100];
    int n;
    int ans=0x3f3f3f3f;
    
    int main()
    {
    	cin>>n;
    	
    	for(int i=1;i<=n;i++)
    		cin>>a[i];
    		
    	for(int i=1;i<n;i++)
    	{
    		ans=min(ans,max(a[i],a[i+1])-min(a[i],a[i+1])); 
    	} 
    	
    	cout<<ans;
    }
    
    
    • 1

    信息

    ID
    6424
    时间
    1000ms
    内存
    64MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者