博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Poj百练 2711:合唱队形 (分类:动态规划)
阅读量:1888 次
发布时间:2019-04-26

本文共 837 字,大约阅读时间需要 2 分钟。

//合唱队形#include 
#include
using namespace std;int N;int main(){ scanf("%d",&N); int h[N+5]; for(int i = 1; i<= N; i++) scanf("%d",&h[i]); //先从左到右求最长上升子序列 int dp1[N+5] = {0, 1}; for(int i = 2; i<= N; i++){ int tmp = 0; for(int j = 1; j < i; j++) if(dp1[j] > tmp && h[i] > h[j]) tmp = dp1[j]; dp1[i] = tmp + 1; } //再从右到左求最长上升子序列 int dp2[N+5]; dp2[N] = 1; for(int i = N-1; i >= 1; i--){ int tmp = 0; for(int j = N; j > i; j--) if(dp2[j] > tmp && h[i] > h[j]) tmp = dp2[j]; dp2[i] = tmp + 1; } //找出dp1和dp2的最大和 int sum = 0, ans; for(int i = 1; i <= N; i++){ if(dp1[i] + dp2[i] > sum) sum = dp1[i] + dp2[i]; } ans = N-sum; printf("%d",ans+1); return 0;}

转载地址:http://hezdf.baihongyu.com/

你可能感兴趣的文章
Laravel 8 整合 Vue 2 解决 history 路由模式 404 问题
查看>>
Laravel8 + Vue2 + Vuetify2 开发的前后端分离的单页面博客类 Web 应用
查看>>
MongoDB 小试牛刀--创建数据库和用户
查看>>
C++单链表的文件存取
查看>>
Ubuntu 20.04 卸载 xubuntu 安装 gnome 桌面
查看>>
打造 Win10 + Kali + Ubuntu + WinPE + LiveCD + U盘存储多合一超级移动硬盘
查看>>
2021年如何学习Flutter?
查看>>
OpenCV学习笔记
查看>>
《骆寻》隐私政策
查看>>
VncViewer 连接 Ubuntu20.04 Gnome远程桌面 ( 解决灰屏,附开机自启动脚本 )
查看>>
Ubuntu16.04利用nat123发布web应用
查看>>
Ubuntu 命令技巧大全整理
查看>>
常用ASCLL码对照表
查看>>
Ubuntu下关闭apache服务的开机自启动
查看>>
Ubuntu开机自启动的两种方法总结
查看>>
Linux进程如何守护防退出
查看>>
vagrant up 启动虚拟机时报错
查看>>
解决Ubuntu中使用git碰到的问题:error: cannot open .git/FETCH_HEAD: Permission denied
查看>>
git merge 报错:error: Your local changes to the following files would be overwritten by m
查看>>
如何解决 Windows 实例出现身份验证错误及更正 CredSSP
查看>>