zoukankan      html  css  js  c++  java
  • Codeforces Round #FF (Div. 2) C. DZY Loves Sequences

    解题报告:输入一个数列,选取一个子数列,要求最多只能改动这个子数列中的一个数,使得这个子数列是严格的升序的(严格升序没有相等的)

    我的做法是,第一步把这个 数列的每个升序的子数列都找出来,然后看这些子数列能不能和跟它相邻的升序的子数列连接起来。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 #include<cmath>
     6 using namespace std;
     7 const int maxn = 100000+5;
     8 typedef __int64 INT;
     9 INT que[maxn];
    10 struct node
    11 {
    12     int f,r,l;
    13 }da[maxn];
    14 
    15 int main()
    16 {
    17     int n;
    18     while(scanf("%d",&n)!=EOF)
    19     {
    20         for(int i = 0;i < n;++i)
    21         scanf("%I64d",&que[i]);
    22         INT f = 0,temp = que[0],s = 0;
    23         que[n] = -0x7ffffffff;
    24         for(int i = 0;i < n;++i)
    25         if(que[i] >= que[i + 1])
    26         {
    27             da[f].f = s;
    28             da[f].r = i;
    29             da[f].l = da[f].r - da[f].f + 1;
    30             s = i+1;
    31             f++;
    32         }
    33     //    for(int i = 0;i < f;++i)
    34     //    printf("%d %d %d
    ",da[i].f,da[i].r,da[i].l);
    35         int ans = 0;
    36         for(int i = 0;i < f - 1;++i)
    37         {
    38             ans = max(ans,da[i].l);
    39             if(f > 1)
    40             ans = max(ans,da[i].l + 1);
    41             if(da[i].l > 1 && que[da[i].r - 1] < que[da[i+1].f] - 1)
    42             ans = max(ans,da[i].l + da[i+1].l);
    43             if(da[i+1].l > 1 && que[da[i].r] < que[da[i+1].f + 1] - 1)
    44             ans = max(ans,da[i].l + da[i+1].l);
    45         }
    46         if(f ==  1)
    47         ans = da[0].l;
    48         if(f > 1)
    49         ans = max(ans,da[f-1].l+1);
    50         printf("%d
    ",ans);
    51     }
    52     return 0;
    53 }
    View Code
  • 相关阅读:
    Vim+Vundle+YouCompleteMe 安装
    TortoiseSVN 的分支合并操作
    JSP数据交互一
    Jquery操作DOM
    Jquery
    JQuery选择器
    第五章初始JQuery
    JavaScript对象及初识面向对象
    JavaScript第三章操作DOM
    JavaScript第二章操作BOM
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3844189.html
Copyright © 2011-2022 走看看