![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 80
USTC_MING
这个作者很懒,什么都没留下…
展开
-
合唱队形——LIS坑爹的二分优化
题目 【题目描述】 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足T1<…Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合...原创 2019-11-02 17:33:10 · 162 阅读 · 0 评论 -
骨牌覆盖 状态压缩 动态规划
简单一点的说这个题,就是用1x2的骨牌去覆盖NxM的棋盘,有多少种方案。N, M <= 11。 初步理解 我们对N进行初步分类讨论: 当N = 1时,M为奇,无解,M为偶,有唯一解 当N = 2时,Fibonacci数列 (自己可以找例子推一下) 深入分析 可N > 2时怎么办? 由于N<=11,不难想到状态压缩,可以用二进制位运算表示。 难点:状态表示:dp[i][S]表示...原创 2019-10-27 11:28:20 · 414 阅读 · 0 评论 -
炮兵阵地 状态压缩动态规划
这个题和玉米田差不多,但多出了以下几个点: 1、他要判断上下左右各2个单位长度 2、要初始化2层 3、数据更大,n<=100 对于第一点,特别的是要开三维数组,来确定上中下三行状态, dp[step][i][j]表示在第step行时,用的是第i种方案,而上一行用的是第j种方案,则有转移方程: dp[step][i][j]=max(dp[step][i][j],dp[step-1][j][...原创 2019-10-25 19:13:36 · 167 阅读 · 0 评论 -
poj 3254 玉米田 状压DP例题
假如我们知道第i-1行的有x种放法,那么对于第i行的每一种放法都有x种,所以定义dp[i][j]表示第i行状态为j时的方法数,有转移方程: dp[i][j]=sum(dp[i-1][k]) k表示i-1行的状态 方程写出来了,但是要想完成程序,还需要解决几个地方: 1、预处理第i行的草地map[i],用一个二进制数表示,1表示不能放,0表示可以放 2、预处理第i行不相邻的状态st[j],每行共...原创 2019-10-25 11:46:24 · 1356 阅读 · 0 评论