zoukankan      html  css  js  c++  java
  • [ CodeVS冲杯之路 ] P1044

      不充钱,你怎么AC?

      题目:http://codevs.cn/problem/1044/

      机房连续断网,搞得现在才能上博客……

      很经典的DP题,把问题转换一下就是分别求最不降序列和最长上升序列

      f[i][j] 表示可以选择多少个,第一问

      

      目标状态是 max(f[i])

      第二问同理,仅仅是把条件的符号换了一下

      

      目标状态也是 max(f[i])

     1 #include<algorithm>
     2 #include<iostream>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #define oo 2147483647
     8 #define N 21
     9 using namespace std;
    10 
    11 int a[N],f[N],n,ans,last[N];
    12 int main()
    13 {
    14     int i=0,j;
    15     while (scanf("%d",&a[++i])!=EOF);
    16     n=i-1;
    17     a[0]=oo;
    18     for (i=1;i<=n;i++)
    19     {
    20         for (j=0;j<i;j++)
    21         {
    22             if (a[j]>=a[i])
    23             {
    24                 if (f[i]<f[j]+1)
    25                 {
    26                     f[i]=f[j]+1;
    27                     ans=max(ans,f[i]);
    28                 }
    29             }
    30         }
    31     }
    32     printf("%d
    ",ans);
    33     a[0]=0;
    34     ans=0;
    35     for (i=1;i<=n;i++)
    36     {
    37         f[i]=0;
    38         for (j=0;j<i;j++)
    39         {
    40             if (a[j]<a[i])
    41             {
    42                 if (f[i]<f[j]+1)
    43                 {
    44                     f[i]=f[j]+1;
    45                     ans=max(ans,f[i]);
    46                 }
    47             }
    48         }
    49     }
    50     printf("%d
    ",ans);
    51     return 0;
    52 }
  • 相关阅读:
    vue2手写vuex
    200.岛屿数量(DFS M-岛屿系列)
    739.每日温度(栈M)
    150.逆波兰表达式求值(栈M)
    20.有效的括号(栈L)
    前端性能优化与SEO优化整理
    Typescript:类型断言
    如何在浏览器中快速调试Typescript
    Typescript:枚举
    Typescript:接口
  • 原文地址:https://www.cnblogs.com/hadilo/p/5865216.html
Copyright © 2011-2022 走看看