关闭

poj1836

标签: poj
157人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <climits>
#include <algorithm>

using namespace std;
float a[1001];
int n,d_up[1001],d_down[1001];

int solve()
{
    for(int i=1;i<=n;++i)
    {
        d_up[i]=1;
        d_down[i]=1;
    }
    for(int i=2;i<=n;++i)
        for(int j=1;j<i;++j)
        {
            if(a[i]>a[j])
                d_up[i]=max(d_up[i],d_up[j]+1);
        }
    for(int i=n-1;i>=1;--i)
        for(int j=n;j>i;--j)
        {
            if(a[i]>a[j])
                d_down[i]=max(d_down[i],d_down[j]+1);
        }
    int maxn=INT_MIN;
    for(int i=1;i<=n;++i)
        for(int j=i+1;j<=n;++j)
            maxn=max(maxn,d_up[i]+d_down[j]);
    return n-maxn;
}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
        scanf("%f",&a[i]);
    printf("%d\n",solve());

    return 0;
}

0
0
查看评论

poj1836

设计算法:dp+LIS 问题描述:有一组士兵身高为H={h1,h2,h3…,hn},现在要求使每个士兵可以向左或者向右看可以看到无穷远处,问最少需要从原队列中拿掉多少士兵,使得队列可以达到要求的状态。 这是一个最长不降子序列的问题,我们需要以某个士兵h[i]将队列分成两个部分,左边是最后一个数为h[...
  • gu_solo
  • gu_solo
  • 2016-01-18 10:21
  • 200

POJ1836

Problem: Alignment Description: 一行士兵排队,他们的身高高矮不一,现在教官想让他们排成这样一个队,从这些士兵中挑选一些士兵出队,使得每个士兵都能看到队头或者队尾。现在问你最少要抽多少士兵出来。 Solution: 首先,我们可以想到如果士兵要看到队头或者队尾,那么...
  • FlushHip
  • FlushHip
  • 2016-06-11 20:38
  • 152

POJ 1836 Alignment (线性dp LIS的两种姿势)

POJ 1836 Alignment (线性dp LIS的两种姿势)
  • Tc_To_Top
  • Tc_To_Top
  • 2015-04-03 20:59
  • 1140

Alignment poj1836

Description In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of ...
  • xtulollipop
  • xtulollipop
  • 2015-07-22 21:25
  • 179

poj1836——alignment

题目大意:从原队列中取出最少的士兵,让新队列里的任意士兵都能看到队列的最左端或者最右端 输入:士兵个数n(2             按编号升序排列的士兵身高h(0.5 输出:需要出列的士兵个数 分析:从左往右求出最长上升子序列l[...
  • tzyshiwolaogongya
  • tzyshiwolaogongya
  • 2017-10-29 13:25
  • 182

POJ1836(LIS)

#include "stdio.h" #define MAXN 1000 double h[ MAXN ]; int left[ MAXN ]; int right[ MAXN ]; int N; void init() { int i, j; for(i = 0; i...
  • adolphxy
  • adolphxy
  • 2013-09-20 22:01
  • 377

【POJ1836】【Alignment】

Alignment Time Limit: 1000MS Memory Limit: 30000KB 64bit IO Format: %I64d & %I64u Submit   Status Description In the army, a plato...
  • u013200703
  • u013200703
  • 2015-08-04 22:14
  • 267

poj1836 Alignment

简单的双向lis。。
  • zhangmin4235
  • zhangmin4235
  • 2013-10-31 19:56
  • 553

[DP] poj1836

<br />/* 题意知道N个人身高 h[1..n]; 要求是的形成一个 h[1]<h[2]<...<h[x]>=h[x+1]>h[x+2]>..的队列 且出列的人最少 2个最长升序列,枚举中间2个点。 */ import jav...
  • code_wind
  • code_wind
  • 2010-11-15 00:17
  • 436

[DP]poj1836

Description In the army, a platoon is composed by n soldiers. During the morning inspection, the soldiers are aligned in a straight line in front of ...
  • u010582475
  • u010582475
  • 2015-05-10 14:00
  • 259
    个人资料
    • 访问:3883次
    • 积分:366
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档
    阅读排行