![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法[动态规划]
丶singularity
今夕复何夕
展开
-
POJ 2151 Check The Difficulty Of problems <概率dp>
题目:传送门。分析:概率dp基础题,注意初始化就好了。直接上代码吧。代码:#include #include #include #include #include using namespace std;const int MAXN=35,MAXT=1e3+5;double dp[MAXN][MAXN],s[MAXN];double p[MAXT][M原创 2017-05-08 00:43:50 · 145 阅读 · 0 评论 -
POJ 1836 Alignment <LIS(单调栈优化)>
题目:传送门题目大意:有一些士兵站成一排,一开始他们是按编号站的,但是他们的首领不喜欢这样,于是首领让一些人出列,剩下的人中每个人都可以看向左边或右边的远方(即每个人的身高是队列左端或右端到他的所有士兵里唯一最高的)。输出这些士兵的身高,求最少出列几个人可以满足首领的要求。分析:解法很明确,分别求得队列从前往后和从后往前的LIS,然后再枚举身高最高分别出现的位置,以求得调整后队列的最大人数_max,原创 2017-07-10 16:12:29 · 344 阅读 · 0 评论 -
POJ 2068 Nim <博弈dp>
题目链接令dp[id][remain]:轮到编号为id的人时还剩下remain颗石子的状态dp[id][remain]:轮到编号为id的人时还剩下remain颗石子的状态,那么dfs记忆化搜索就好了。代码:#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int S=1<<13;原创 2017-07-30 20:55:51 · 277 阅读 · 1 评论 -
POJ 1276 Cash Machine <多重背包>
题目:传送门 分析:简单多重背包问题,第一次做此类型问题,看了dd大牛的《背包问题九讲》做的。不得不说这些大牛是真的厉害啊,高中时期就能写出如此清晰透彻的讲解。 代码:#include <iostream>#include <algorithm>#include <cstring>#include <string>using namespace std;const int MAXV=1e原创 2017-07-09 23:27:18 · 140 阅读 · 0 评论 -
POJ 3252 Round Numbers <数位dp(记忆化所搜)/组合数学>
题目:传送门题目大意:输入两个数start和finish,求闭区间[start,finish]中Round Numbers(二进制表示中0的个数大于等于1的个数)的个数。分析:有两种做法。 一种是数位dp,limit的作用是,如果当前pos位之前的更高位已经达到最大值(默认受bit[]限制),那么当前位就会受bit[]限制,否则,则当前位为0,1都可以,这是为了保证搜索的数不会比x大。lead表示原创 2017-07-11 23:11:02 · 199 阅读 · 0 评论