zoukankan      html  css  js  c++  java
  • pku 1836 Alignment

    因为是权初始化mark1[],mark2[]为0,所以最后要再减去2,mark1[i]为从第1个到第i个人中最长递增子序列的最长长度,mark2[i]为从第个i到最后一个人中最长递减子序列的最长长度,求峰值

    code:

    //204k, 32ms

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    double list[1005];
    int n, mark1[1005], mark2[1005];

    int main()
    {
    while(scanf("%d", &n)!=EOF)
    {
    memset(mark1, 0, sizeof(mark1));
    memset(mark2, 0, sizeof(mark2));
    for(int i=0; i<n; i++)
    scanf("%lf", &list[i]);
    for(int i=1; i<n; i++)
    {
    for(int j=i-1; j>=0; j--)
    {
    if(list[i]>list[j])
    if(mark1[i]<mark1[j]+1)
    mark1[i]=mark1[j]+1;
    }
    }
    for(int i=n-2; i>=0; i--)
    {
    for(int j=i+1; j<n; j++)
    {
    if(list[i]>list[j])
    if(mark2[i]<mark2[j]+1)
    mark2[i]=mark2[j]+1;
    }
    }
    int flag=0;
    for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++)
    flag=max(flag,(mark1[i]+mark2[j]));
    printf("%d\n", n-flag-2);
    }
    return 0;
    }
  • 相关阅读:
    神经网络
    机器学习摘要
    one-vs-all案例
    VHDL
    docker 摘要(入门版)
    Windows与Unix思想
    安装 fedora 之后
    逻辑回归实战
    TensorFlow安装
    Haskell语言学习笔记(65)Data.HashMap
  • 原文地址:https://www.cnblogs.com/FreeAquar/p/1943630.html
Copyright © 2011-2022 走看看