1210. 连号区间数(枚举)

题目:

1210. 连号区间数(枚举)_第1张图片

 1210. 连号区间数(枚举)_第2张图片

 1210. 连号区间数 - AcWing题库

思路:枚举 

枚举一般是先暴力再优化。

注意:对于区间的枚举,一般是定一移一。固定任何一端移动另外一端均可以。但是此题为便于在枚举移动端的过程中确定最大最小,选择定左移右。 

 代码:

#include
#include
using namespace std;
const int N=10010;
int a[N];
int main()
{
    int n,res=0;
    cin>>n;
    int i,j;
    for(i=1;i<=n;i++)scanf("%d",&a[i]);
    
    //固定区间左端点
    for(i=1;i<=n;i++)
    {
        int max=0;int min=10001;
        
        //移动的右端点
        for(j=i;j<=n;j++)
        {
            if(maxa[j])min=a[j];
            
            //因为排列是不重复的,若连续递增则有区间端点差=最大-最小
            if(max-min==j-i)res++;
        }
    }
    cout<

 

你可能感兴趣的:(枚举,算法,c++,数据结构)