AcWing登山
这是2006北大举办的ACM的一道题。
题意为:给定景点海拔高度,队员们不去游览相同高度的景点,一开始往上爬,一但往下爬就不能再向上爬,求最多可以游览多少个景点。那么我们可以得到一个结论:以一个最高点为区分,前面的是最大上升子序列,后面的是最大下降子序列。然后我们就彻底把此传化为了LIS问题。我们开始思考:集合?以峰值为终点的最大子序列长度(一个1-n;一个n~1)。属性?最大值。划分依据与计算?以a[i]结尾的序列a[1],a[2],a[i-1],a[i]里找到a[j]<a[i[,那么状态则可以转化为前面那个数的状态+1,然后与当前进行比较即可。当然当j=0时,dp[i]=1。其次要注意这个反向的时候逆序来求,要再开一个集合。最后枚举峰值点即可。
代码
- #include<bits/stdc++.h>
- #define maxn 1010
- using namespace std;
- int dp1[maxn],dp2[maxn];
- int n;
- int a[maxn];
- int main(){
- cin>>n;
- for(int i=;i<=n;i++){
- cin>>a[i];
- }
- for(int i=;i<=n;i++){
- dp1[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--){
- dp2[i]=;
- for(int j=n;j>i;j--){
- if(a[i]>a[j]){
- dp2[i]=max(dp2[i],dp2[j]+);
- }
- }
- }
- int res=;
- for(int i=;i<=n;i++){
- res=max(res,dp1[i]+dp2[i]-);
- }
- cout<<n;
- return ;
- }
AcWing登山的更多相关文章
- AcWing 1014. 登山
#include<iostream> using namespace std ; ; int f[N],g[N]; int w[N]; int main() { int n; cin> ...
- 登山(Climb)
题目: Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, --, n.每个山峰的高度都是不一样的.编号为i的山峰高度为hi. 小修从西往东登山.每到一座山峰,她就回头观望自己走 ...
- 腾讯机试题 AcWing 603 打怪兽
题目链接:https://www.acwing.com/problem/content/605/ 题目大意: 略 分析: 用dp[i][j]表示用j元钱能在前i只怪兽上所能贿赂到的最大武力值. 有一种 ...
- [DP题]登山
描述 五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号.同时队员们还有另一个登山习惯,就是 ...
- AcWing 143. 最大异或对
https://www.acwing.com/problem/content/145 #include <iostream> #include <algorithm> usin ...
- AcWing 153. 双栈排序
https://www.acwing.com/problem/content/155/ #include <cstring> #include <iostream> #incl ...
- 【Foreign】登山 [DP][数学]
登山 Time Limit: 10 Sec Memory Limit: 256 MB Description 恶梦是一个登山爱好者,今天他来到了黄山 俗话说的好,不走回头路.所以在黄山,你只能往前走 ...
- acwing 3 完全背包
习题地址 https://www.acwing.com/problem/content/description/3/ 题目描述有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用. 第 i ...
- AcWing 164. 可达性统计
给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量. 输入格式 第一行两个整数N,M,接下来M行每行两个整数x,y,表示从x到y的一条有向边. 输出格式 输出共N行,表示每个点能 ...
随机推荐
- .py文件打包成.exe文件
# 使用pyinstaller模块 # pip install pyinstaller # 在命令行执行 pyinstaller -F xxx.py
- 嵌入式实时操作系统VxWorks入门――开发环境构建[转]
VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它以其良好的可靠性和卓越的实时性被广泛地应用在通 信.军事.航空.航天等高精尖技术及实时性 ...
- AcWing:135. 最大子序和(前缀和 + 单调队列)
输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大. 输入格式 第一行输入两个整数n,m. 第二行输入n个数,代表长度为n的整数序列. 同一行数之间用空格隔开 ...
- Codeforces 385C Bear and Prime Numbers(素数预处理)
Codeforces 385C Bear and Prime Numbers 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1). 但是,我在统计数组中元素出 ...
- 06.旋转数组的最小数字 Java
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- C++入门经典-例9.5-为具体类型的参数提供默认值
1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值.代码如下: // 9.5.cpp : 定义控制台应用程序的入口点. #incl ...
- 伪分布式下Hadoop3.2版本打不开localhost:50070,可以打开localhost:8088
一.问题描述 伪分布式下Hadoop3.2版本打不开localhost:50070,可以打开localhost:8088 二.解决办法 Hadoop3.2版本namenode的默认端口配置已经更改为9 ...
- layui template list
//第一步:编写模版.你可以使用一个script标签存放模板,如: <script id="demo" type="text/html"> < ...
- Mac securecrt 破解
今天花了好长的时间终于在Mac上把SecureCRT安装成功了,网上教程大多没有截图,破解关键步骤含糊,现在把详细的破解过程和SecureCRT使用教程分享给大家.最后把参考的博客连接附在最下方. ...
- css实现左侧固定宽度,右侧宽度自适应
#centerDIV { height: 550px; width: 100%; } #mainDIV { height: 100%; border: 1px solid #F00; margin-l ...