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

    目前WA中,正在找错……

     1 #include <cstdio>
     2 
     3 const int MAXN = 1000 + 10;
     4 const int INF = 2147483645;
     5 
     6 double stack[MAXN];
     7 double height[MAXN];
     8 double reverse[MAXN];
     9 int n;
    10 
    11 int Bsearch( int x, int y, double v )
    12 {
    13     int m;
    14     while ( x < y )
    15     {
    16         m = ( x + y ) / 2;
    17         if ( v > stack[ m - 1 ] && v <= stack[m] ) return m;
    18         else if ( stack[m] > v ) y = m;
    19         else x = m + 1;
    20     }
    21     return m;
    22 }
    23 
    24 int DP( int y, double *num )              //求到位置 y - 1 的最长上升子序列
    25 {
    26     int top = 0;
    27 
    28     stack[ ++top ] = num[0];
    29 
    30     for ( int i = 1; i < y; i++ )
    31     {
    32         if ( num[i] > stack[top] )
    33             stack[ ++top ] = num[i];
    34         else
    35         {
    36             int temp = Bsearch( 0, top, num[i] );
    37             if ( stack[temp] > num[i] ) stack[temp] = num[i];
    38             else stack[temp + 1] = num[i];
    39         }
    40     }
    41 
    42     return top;
    43 }
    44 
    45 int main()
    46 {
    47     while ( scanf("%d", &n) != EOF )
    48     {
    49         for ( int i = 0; i < n; i++ )
    50         {
    51             scanf( "%lf", &height[i] );
    52             reverse[n - 1 - i] = height[i];      //逆序存一下该数列,把求从左往右的递减序列问题
    53                                                  //转换为求从右往左的递增序列问题
    54         }
    55 
    56         int MIN = INF;
    57         for ( int i = 0; i < n; i++ )
    58         {
    59             int temp;
    60             int ans1 = DP( i, height );
    61             int ans2 = DP( n - i, reverse );
    62 
    63             temp = n - ( ans1 + ans2 );
    64 
    65 //            printf( "%d %d\n", ans1, ans2 );
    66 
    67             if ( temp < MIN ) MIN = temp;
    68         }
    69 
    70         printf( "%d\n", MIN );
    71     }
    72     return 0;
    73 }
  • 相关阅读:
    搜索框的实现
    图片瀑布流实现
    git的基本操作总结
    linux中常用命令总结
    JavaScript中的闭包
    springmvc执行过程
    位运算
    MySQL与Oracle数据库连接配置
    java 基础数据类型大小
    spring源码编译控制台输出乱码
  • 原文地址:https://www.cnblogs.com/GBRgbr/p/2615816.html
Copyright © 2011-2022 走看看