
动态规划
文章平均质量分 56
斩-AC
这个作者很懒,什么都没留下…
展开
-
HDU2159背包
完全背包,升级所需n经验,每个怪对应a经验,b耐久,dp出最大耐久可以打到的最多经验,同时注意最多只能打s个怪: #include #include #include #include using namespace std; const int N = 200; int dp[N], w[N], p[N], Hash[N]; int main() { int n, m,原创 2015-03-21 15:25:07 · 410 阅读 · 0 评论 -
HDU_1421DP
经典DP问题,先将劳累度排序,相邻相减的平方才是最小的,然后分析:dp[i][j]为前i物品选择了j对最小的疲劳值,对于dp[i][j] 当i = j*2时,则dp[i-2][j-1] + a, 当i>j*2时,dp[i][j] = min(dp[i-1][j], dp[i-2][j-1]+a) #include #include #include #include using nam原创 2015-03-28 17:02:12 · 311 阅读 · 0 评论 -
HDU1506_DP
动态规划写法:n个数,1--n对于每个数i判断左右区间连续且不小于i的个数numb,即对于i,dp[i] = a[i]*numb,然后遍历dp,找出最大值,判断i左右区间连续且不小于i的numb时,可以开两个数组,L和R,注意不要嵌套两重循环,否则后超时下面是AC代码: #include #include using namespace std; const int N = 100000原创 2015-03-29 22:26:59 · 367 阅读 · 0 评论 -
HDU1978_DP
在每一个格子里都有一个能量值,游戏规则是每一步都要消耗一点能量值,只能向下或者向右走,因此对于你所处的每一个格子,对于从这个格子出发可以到达的所有格子都要累加:到达第(i, j)个格子的方法数是dp[i][j], 对于从(i, j)格子可以到达的格子(i+k, j+t), dp[i+k][j+t] += dp[i][j]; 记住取模,此处没有取模。水题~贴代码: #include #inclu原创 2015-03-22 21:22:45 · 379 阅读 · 0 评论