poj1836动态规划+最长上升子序列变形+最长增和最长减然后找出分割点
来源:互联网 发布:淘宝刷单被发现怎么办 编辑:程序博客网 时间:2024/05/19 15:44
记录每个人左边的最大升序列中的人数(注意:他自己也算一个并且身高严格递增),记录每个人右边的最大严格降序列的人数,也包括他自己。
然后代码中有第二种身高序列的处理。
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<cmath>using namespace std;#define N 1005int up[N],down[N];double Arr[N];int main(){ int n=0,i=0,j=0,maxn=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%lf",&Arr[i]); } for(i=0;i<n;i++) { up[i]=down[i]=1; } for(i=1;i<n;i++) { maxn=0; for(j=0;j<i;j++) { if(Arr[j]<Arr[i]&&up[j]>maxn) { maxn=up[j]; } } up[i]=maxn+1; } for(i=n-1;i>=0;i--) { maxn=0; for(j=i+1;j<n;j++) { if(Arr[j]<Arr[i]&&down[j]>maxn) { maxn=down[j]; } } down[i]=maxn+1; } int tmp=0; for(i=0;i<n-1;i++)//通过改变切割点来划分需要的减少最少的点 { for(j=i+1;j<n;j++) { if(up[i]+down[j]>tmp) { tmp=up[i]+down[j]; } } } printf("%d\n",n-tmp); return 0;}
0 0
- poj1836动态规划+最长上升子序列变形+最长增和最长减然后找出分割点
- poj1836--Alignment(dp,最长上升子序列变形)
- poj1836--Alignment(dp,最长上升子序列变形)
- (POJ1836)Alignment <DP,最长上升子序列变形>
- POJ1836-Alignment(最长上升子序列)
- 动态规划:最长上升子序列
- 动态规划-最长上升子序列LIS
- 动态规划求最长上升子序列
- 【算法】动态规划 最长上升子序列
- 动态规划:最长上升子序列
- poj2533 动态规划+最长上升子序列
- POJ2533 动态规划 (最长上升子序列)
- 动态规划--最长上升子序列
- 动态规划-最长上升子序列【LIS】
- 动态规划之最长上升子序列
- 动态规划 LIS最长上升子序列
- 动态规划-最长上升子序列
- 动态规划:求最长上升子序列
- 支付宝第三方支付 平台
- modelsim 功能仿真 心得
- SQL基础教程之SQL指令
- JDK 1.8 新特性
- Codeforces Round #320 (Div. 2)(B)
- poj1836动态规划+最长上升子序列变形+最长增和最长减然后找出分割点
- Linux下查看文件和文件夹大小
- MVC浅析(实际上应该是MVP,有时间再更新该博客)
- redis缓存的安装和使用
- 关于xcode7ios9的bug
- CUDA实现图像反转
- Android httpClient 支持HTTPS
- ajax与HTML5 history pushState/replaceState实例
- WCF REST 上传图片下载