zoukankan      html  css  js  c++  java
  • UVA-10534 Wavio Sequence (DP+LIS)


    思路:

    正反各求出每个数作为结尾数字的LIS,然后找出最长的Wavio Sequence,用O(n2)试了一次TLE,所以只能用O(nlogn)的算法。


    Code:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define INF 0x3f3f3f3f
     4 #define M(a) memset(a, 0, sizeof(a))
     5 const int maxn = 10000 + 10;
     6 int bd[maxn], ed[maxn], bg[maxn], eg[maxn], a[maxn], b[maxn];
     7 
     8 int main() {
     9     int n;
    10     while(~scanf("%d", &n)) {
    11         M(bd), M(ed), M(eg), M(bg);
    12         for (int i = 1; i <= n; ++i) {
    13             scanf("%d", &a[i]);
    14             b[n-i+1] = a[i];
    15         }
    16         for (int i = 1; i <= n; ++i) bg[i] = eg[i] = INF;
    17         for (int i = 1; i <= n; ++i) {
    18             int k = lower_bound(bg+1, bg+n+1, a[i]) - bg;
    19             bd[i] = k;
    20             bg[k] = a[i];
    21             k = lower_bound(eg+1, eg+n+1, b[i]) - eg;
    22             ed[i] = k;
    23             eg[k] = b[i];
    24         }
    25         int ans = 0, temp;
    26         for (int i = 1; i <= n; ++i) {
    27             temp = min(bd[i], ed[n-i+1]);
    28             ans = max(ans, temp);
    29         }
    30         printf("%d
    ", 2*ans-1);
    31     }
    32 
    33     return 0;
    34 }
  • 相关阅读:
    spring的了解以及简单框架的搭建
    动态代理
    struts2标签(转)
    使用OGNL表达式
    struts2 ValueStack
    struts2框架xml验证
    struts2 validate手动验证
    struts2自定义拦截器
    struts2文件上传
    当findById(Integer id)变成String类型
  • 原文地址:https://www.cnblogs.com/robin1998/p/6395433.html
Copyright © 2011-2022 走看看