![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
+ 动态规划
文章平均质量分 60
codekun
这个作者很懒,什么都没留下…
展开
-
UVa 1025 - A Spy in the Metro [DP]
动态规划基础例题,要理解状态和状态转移方程。。。 #include using namespace std; int kase = 0; int n, T, t[80]; int M1, M2, st1[64], st2[64]; bool has_train[512][64][2]; int dp[512][80]; const int INF = 1<<8; int main() {原创 2015-03-31 17:58:52 · 426 阅读 · 0 评论 -
UVa 12563 - Jin Ge Jin Qu hao [DP]
题意:给定几首歌的长度,在规定时间内,选择尽量多的曲目,在此前提下选择时间尽量长的歌。 动态规划基础题,刚开始把条件看反了。dp[j]代表在j时间能够唱的最多曲目。 #include using namespace std; int dp[10240], ti[10240]; int main() { int T, kase = 0; cin >> T; while(T-原创 2015-04-06 18:55:20 · 674 阅读 · 0 评论 -
HDU 1159 - Common Subsequence [最长公共子序列]
动规简单题,dp[i][j]表示的状态为字符串a.substr(0, i)和b.substr(0, j)的最长公共子序列。 #include #include #include #include using namespace std; int dp[1024][1024]; int main() { string a, b; while(cin >> a >> b)原创 2015-04-06 19:05:01 · 418 阅读 · 0 评论 -
POJ 2385 - Apple Catching [DP]
比赛时不会动规,现在拿出来再做一遍。 dp[i][j]表示在i时刻使用j次转移得到的最多苹果数 #include #include #include using namespace std; int a[1024], dp[1024][35]; int main() { int n, w; cin >> n >> w; for(int i = 1; i <原创 2015-04-06 21:02:58 · 421 阅读 · 0 评论 -
UVa 11584 - Partitioning by Palindromes [动规]
题意:给定一个字符串,判断能划分成尽量少的回文串的数量。 dp[i]代表的状态为字符串前i个字符所能划分成的最少回文串的数量。判断回文串可以用递归来判断。 #include #include #include #include using namespace std; char str[1024]; int dp[1024]; const int inf = 0x7f7f7f7f;原创 2015-04-07 22:17:26 · 419 阅读 · 0 评论 -
第三届ACM山东省赛 Pick apples [贪心+动规]
超大背包问题,刚开始想复杂了。分段填充背包,前面一大部分用性价比最高的填充,最后一部分动规就可以了。 题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2408 Pick apples Time Limit: 1000ms Memory limit: 165536K 有原创 2015-04-12 21:42:25 · 766 阅读 · 0 评论 -
UVa 1218 Perfect Service [DFS+DP]
题意:给定一个树形的机器结构,安装服务器,每台服务器恰好跟一台服务器相邻,问最少装几台服务器。 首先DFS把树建立起来,然后动规求解,注意设置无穷大inf后累加要防止超int范围。 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include using原创 2015-04-14 11:11:34 · 568 阅读 · 0 评论 -
UVa 10285 Longest Run on a Snowboard [DP]
题意:给定一个整数矩阵,找到一条严格递减的最长路。 简单的动规题目,dp[i][j]表示走到(i, j)所走过的最长步数,向四个方向转移状态即可。 #include using namespace std; const int maxn = 105; string str; int r, c; int a[maxn][maxn], dp[maxn][maxn]; const int dir原创 2015-04-16 16:25:48 · 575 阅读 · 0 评论