码迷,mamicode.com
首页 > Windows程序 > 详细

AcWing 1210. 连号区间数

时间:2021-02-25 12:00:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:get   for   href   思路   tar   ret   targe   循环   区间dp   

原题链接

考察:枚举

错误思路:

        三层for循环暴力.

做多了区间dp...枚举区间只能想到按长度枚举区间,但这道题不能这么枚举.....

正确思路:

        按区间端点来枚举区间,连号区间的特点是最大值-最小值 = 右端点-左端点.随着区间向右边延长,而动态记录最值.

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 const int N = 10010;
 5 int a[N];
 6 int main()
 7 {
 8     int n,ans = 0;
 9     scanf("%d",&n);
10     for(int i=1;i<=n;i++) scanf("%d",&a[i]);
11     for(int i=1;i<=n;i++)
12     {
13         int maxn = 0,minv = N;
14         for(int j=i;j<=n;j++)
15         {
16             maxn = max(maxn,a[j]);
17             minv = min(minv,a[j]);
18             if(maxn-minv==j-i) ans++;
19         }
20     }
21     printf("%d\n",ans);
22     return 0;
23 }

 

AcWing 1210. 连号区间数

标签:get   for   href   思路   tar   ret   targe   循环   区间dp   

原文地址:https://www.cnblogs.com/newblg/p/14443283.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!