[ACM_动态规划] Alignment (将军排队)

简介:


http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28415#problem/F

题目大意:有n个士兵排成一列,将军想从中抽出最少人数使队伍中任何士兵都能够看到左边最远处或右边最远处

解题思路:①此题是最长上升子序列的升级版。

               这里先介绍一下最长上升子问题(LIS):给定n个数从右往左选出尽量多的数,组成一个上升子序

               列,相邻的不能相等 ——> 设d[i]表示以第i个数结尾的最长上升子序列,则状态转移方程为:d[i]=

               max{0,d[j]|j<i,a[j]<a[i]},答案是max{d[i]};

               此题可从左往右求出d[](代码里为b[]),再从右往左求出d[](代码里为c[]),答案就是max{b[i]+c[j]

               | i<j}

  View Code

 



本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/3246195.html ,如需转载请自行联系原作者
相关文章
|
2月前
|
存储 人工智能 算法
【算法——动态规划】蓝桥ALGO-1007 印章(C/C++)
【算法——动态规划】蓝桥ALGO-1007 印章(C/C++)
【算法——动态规划】蓝桥ALGO-1007 印章(C/C++)
|
6月前
|
算法 iOS开发
程序与技术分享:2020CCPC秦皇岛K【Kindom'sPower】(树上贪心dp)
程序与技术分享:2020CCPC秦皇岛K【Kindom'sPower】(树上贪心dp)
31 0
|
算法
Boyer-Moore 投票算法
这里先贴题目:
87 0
|
算法
ACM算法训练【区间合并】
思路: • 按区间左端点排序,每次维护一个区间 • 新增区间的三种关系:
140 0
ACM算法训练【区间合并】
|
Java Shell
Codeforces Round #746 (Div. 2) D - Hemose in ICPC ?(交互 二分 欧拉序)
Codeforces Round #746 (Div. 2) D - Hemose in ICPC ?(交互 二分 欧拉序)
154 0
UPC-排队出发+AcWing-耍杂技的牛(推公式的贪心)
UPC-排队出发+AcWing-耍杂技的牛(推公式的贪心)
86 0
2019牛客暑期多校2-Partition problem深搜
题意: 将2*n个人分成两部分,每部分都有n个人 而且每个人只能属于一个组,问按照给出的算式得到的竞争力最大值是多少
94 0
2019牛客暑期多校2-Partition problem深搜
|
机器学习/深度学习
[Nowcoder] 2021年度训练联盟热身训练赛第六场 Mini Battleship | 深搜 回溯 乱搞
题意: 给定一个n ∗ n n * nn∗n的矩阵,其中在X XX上一定不可以放置船,而在O OO上面一定要放置船,在′ . ′ '.' 上面可以放置船,也可以不放,问将以下m mm艘船,大小均为1 ∗ x 1 * x1∗x,放置在矩阵中的方案数量 思路: 类似经典的八皇后问题, 首先将所有的m个都成功放置之后,并且所有的O均已成功放置船艘,此时的方案书就应该 + 1 注意船的形状一共有两种情况:横着和竖着,但是对于1 * 1的情况来说就只有一种状态,这里要特判掉 我们用j u d g e ( ) judge()judge()函数来判断是否能够是否可以放置该船,
130 0
|
算法
ACM知识 - 贪心算法和动态规划的区别与联系
ACM知识 - 贪心算法和动态规划的区别与联系
203 0
|
人工智能 Java
HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem E. Sequence
HDU - 2018杭电ACM集训队单人排位赛 - 3 - Problem E. Sequence
150 0