POJ-1836 Alignment---LIS
题目链接:
https://cn.vjudge.net/problem/POJ-1836
题目大意:
题意:令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。
解题思路:
求出每一位结束的最长上升子序列和每一位开始的最长下降子序列,求出最大值,然后用队伍长度减去即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<sstream>
using namespace std;
typedef long long ll;
int dp1[], dp2[];
double a[];
int main()
{
int n;
cin >> n;
for(int i = ; i <= n; i++)cin >> a[i], dp1[i] = , dp2[i] = ;
for(int i = ; i <= n; i++)
{
for(int j = ; j < i; j++)
if(a[i]>a[j])dp1[i] = max(dp1[i], dp1[j] + );
}
for(int i = n; i >= ; i--)
{
for(int j = n; j > i; j--)
if(a[i]>a[j])dp2[i] = max(dp2[i], dp2[j] + );
}
int ans = ;
for(int i = ; i <= n; i++)
for(int j = i + ; j <= n; j++)
ans = max(dp1[i] + dp2[j], ans);
cout<<n - ans<<endl;
}
POJ-1836 Alignment---LIS的更多相关文章
- POJ 1836 Alignment --LIS&LDS
题意:n个士兵站成一排,求去掉最少的人数,使剩下的这排士兵的身高形成“峰形”分布,即求前面部分的LIS加上后面部分的LDS的最大值. 做法:分别求出LIS和LDS,枚举中点,求LIS+LDS的最大值. ...
- POJ 1836 Alignment 最长递增子序列(LIS)的变形
大致题意:给出一队士兵的身高,一开始不是按身高排序的.要求最少的人出列,使原序列的士兵的身高先递增后递减. 求递增和递减不难想到递增子序列,要求最少的人出列,也就是原队列的人要最多. 1 2 3 4 ...
- POJ 1836 Alignment
Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11450 Accepted: 3647 Descriptio ...
- poj 1836 Alignment(dp)
题目:http://poj.org/problem?id=1836 题意:最长上升子序列问题, 站队,求踢出最少的人数后,使得队列里的人都能看到 左边的无穷远处 或者 右边的无穷远处. 代码O(n^2 ...
- POJ 1836 Alignment 水DP
题目: http://poj.org/problem?id=1836 没读懂题,以为身高不能有相同的,没想到排中间的两个身高是可以相同的.. #include <stdio.h> #inc ...
- poj 1836 Alignment(线性dp)
题目链接:http://poj.org/problem?id=1836 思路分析:假设数组为A[0, 1, …, n],求在数组中最少去掉几个数字,构成的新数组B[0, 1, …, m]满足条件B[0 ...
- POJ - 1836 Alignment (动态规划)
https://vjudge.net/problem/POJ-1836 题意 求最少删除的数,使序列中任意一个位置的数的某一边都是递减的. 分析 任意一个位置的数的某一边都是递减的,就是说对于数h[i ...
- POJ 1836 Alignment (双向DP)
Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10804 Accepted: 3464 Descri ...
- POJ 1836 Alignment(DP max(最长上升子序列 + 最长下降子序列))
Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14486 Accepted: 4695 Descri ...
- poj 1836 LIS变形
题目链接http://poj.org/problem?id=1836 Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submiss ...
随机推荐
- JAVA WEB开发环境搭建
JAVA WED开发环境搭建 JDK的安装和配置 到https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-21 ...
- IOS下去掉input submit圆角和背景色错误
在iOS系统下input submit会有圆角,如果添加有背景色,背景色错误,在安卓系统是没有这些问题,可以在input样式加上这段样式 input{ -webkit-appearance: none ...
- 用Verilog语言设计一个3-8译码器
case语句 if_case语句 源码下载 Github >>
- HTML练习 | 百度搜索框
<!DOCTYPE html> <head> <title>百度首页</title> <style> .logo{ background:u ...
- Find command usage in Linux with excellent examples--reference
http://www.coolcoder.in/2014/02/find-command-usage-in-linux-with.html find searches the directory tr ...
- LintCode刷题小记491
题目: 判断一个正整数是不是回文数. 回文数的定义是,将这个数反转之后,得到的数仍然是同一个数. 样例: 11, 121, 1, 12321 这些是回文数. 23, 32, 1232 这些不是回文数. ...
- python爬取英语学习资料并发送邮件
新建发送邮件类 import smtplib from email.mime.text import MIMEText from email.header import Header class Se ...
- python的返回值
1.返回值的作用 函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值.函数返回的值被称为返回值.在函数中,可使用return语句将值返回到调用函数的代码行.返回值让你能够将程序的大 ...
- Java ConcurrentHashMap初始化
初始化ConcurrentHashMap时可以指定map大小,由于ConcurrentHashMap代码默认大小是2n,这里需要把用户填的大小转换成2n备注:代码基于jdk 1.8.0_91Concu ...
- drupal 学习思路
我之前没有学习过框架,用过一个简单的cms.php工作经验有大半年.独立项目经验为0.5.目前在用drupal,用了有三个月,主要是用drupal写app的后台管理和api接口.公司在drupal的基 ...