
简单DP
acunstoppable
这个作者很懒,什么都没留下…
展开
-
POJ3046 动态规划 多重集组合数
题意: 蚂蚁牙黑,蚂蚁牙红:有A只蚂蚁,来自T个家族。同一个家族的蚂蚁长得一样,但是不同家族的蚂蚁牙齿颜色不同。任取n只蚂蚁(S<=n<=B),求能组成几种集合?思路: 1、《挑战》P69 前缀和优化; 2、滚动数组优化。 反思: 初始化以及循环上下界的细节要考虑清楚。 代码:#include <cstdio>#include <iostream>#include <cstrin原创 2018-03-10 22:06:25 · 218 阅读 · 0 评论 -
HDU1260 动态规划 简单DP
题意:买电影票有 单人购票 和 相邻两人团购 两种方式,给你队列人数及每人两种购票方式所花时间,问最小花费时间。 思路:定义状态dp[0][i]为i-1未买团票,i买完后的最少花费时间,dp[1][i]为i-1是团票,i买完后的最少花费时间。#include <iostream>#include <cstring>#include <algorithm>#include <iomanip>原创 2017-08-12 09:54:41 · 293 阅读 · 0 评论 -
HDU1114 动态规划 背包 多重背包
题意:给定一能容纳一定重量的储钱罐 和 各种面额硬币的重量(数量无穷), 问恰好装满储钱罐时,罐内价值总和之最小。 思路:多重背包模板题。#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 500 +原创 2017-08-12 09:58:28 · 243 阅读 · 0 评论 -
POJ1631 动态规划 LIS
题意: 求LIS。 思路: 反思: 1、学习了求LIS的O(nlogn)算法思想; 2、注释掉的部分为求LIS路径的代码。 代码:#include <cstdio>#include <algorithm>#include <cmath>#include <iostream>#include <stack>using namespace std;const int MAXN =原创 2018-03-17 01:12:29 · 204 阅读 · 0 评论 -
POJ3666&CF714E 动态规划
题意: 给定a序列,构造非严格递增或非严格递减的b序列,使得| a[0] - b[0] | + | a[1] - b[1] | + … + | a[n-1] - b[n-1] | 最小,并求出其值。 思路: 最开始的思路是这样的: 假设构造的序列是非严格单调增的。 dp[i][j]:b序列的前i+1个数已成单调序列且最后一个元素为j时的最小成本。 转移方程:dp[i][j] = min原创 2018-03-17 17:06:50 · 212 阅读 · 0 评论 -
动态规划 FZU2236 树状数组优化
题意: 这题是求一个数列中严格递增子序列的个数。比如数列(1,3,2)的严格递增子序列有(1)、(3)、(2)、(1,3)、(1,2),共5个。长得一样的但是位置不同的算不同的子序列,比如数列(3,3)的答案是2。 思路: 1、类LIS问题: dp[i] = sigmadp[j] + 1(j < i && a[j] < a[i]) 2、离散化 + 树状数组 反思: 代码:#include原创 2018-05-03 23:37:12 · 237 阅读 · 0 评论