1836专题

poj 1836 Alignment( 最长上升(下降)子序列 )

http://poj.org/problem?id=1836 题意:给n个士兵的身高,要求每个士兵向左或向右能看向无穷远处(新队列呈三角形分布),最少要剔除几个士兵;思路:对数列分别顺序,逆序求最长上升子序列,然后枚举i和 j,使得以i结尾的上升子序列与以j开头的下降子序列的和最大; #include <stdio.h>#include <string.h>#include

51nod 1836 战忽局的手段(期望+矩阵快速幂)

众所周知,有一个神秘的组织——战忽局,在暗中保护着我们。在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人。如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事,于是决定再次用忽悠来保证战忽局的安全。局座将发表m次演讲,每一天他都会从n事件中等概率地挑选一件混淆众人,由于局座每天很忙,不能把之前将的事件都记录下来,因此他可能会重复选择某一件事。现在局座想知道,

poj-1836-Alignment-dp-最长最短子序列问题

题意: 给你一排士兵,然后给你他们的身高,让你求最少剔除几个士兵之后,剩下的士兵的每一个士兵都能看见最左边的风景或者是最右边的风景。 做法: 按照题意就是求最少剔除几个士兵,才是得一排士兵的高度组成一个三角形。 求出最大上升子序列lens【i】,最大下降子序列lenx【i】。 如果以一个士兵i为三角形的头的话,那么这排士兵最多可以保留lens【i】+lenx【i】-1个人。 那么求出最