动态规划
Strokess
懂的越少,想的越多。
展开
-
蓝桥杯 算法训练 K好数 (动态规划)
算法训练 K好数 时间限制:1.0s 内存限制:256.0MB 问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007原创 2016-03-02 19:32:23 · 1291 阅读 · 0 评论 -
HDU 5115 Dire Wolf (区间DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5115题意:很多狼排成一排,每只狼有一个攻击值a[i]和附加攻击值b[i]。当你消灭一只狼时,你会受到这只狼的攻击值的伤害和它旁边两只狼的附加攻击值的伤害。求消灭所有狼的最小伤害值。区间DP,容易想,但是要处理好边界条件。dp[x][y] 表示 消灭区间[x, y]的狼最小花原创 2016-10-22 20:15:57 · 491 阅读 · 0 评论 -
HDU 5904 LCIS (dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5904题意:给两个序列,要找他们的最长公共递增子序列,并且这个子序列的值必须是连续的(x,x+1,...,y-1,yx,x+1,...,y−1,y)这次BC全场最简单的一道题.....先dp两个序列中易每个数字结尾的最大的连续上升序列的长度。然后比对两原创 2016-09-26 20:16:17 · 535 阅读 · 0 评论 -
Codeforces Round #367 (Div. 2) C. Hard problem (DP)
题目链接:http://codeforces.com/contest/706/problem/C题意:n个字符串,只能进行将字符串反转的操作,反转每个字符串花费ci。问是否能让所有字符串按字典序升序排列,能则输出最小花费,不能输出-1。和递增子序列差不多啊。#include #include #include #include using namesp原创 2016-08-12 10:38:30 · 403 阅读 · 0 评论 -
HDU 5773 The All-purpose Zero (LIS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5773最大上升子序列,不过子序列中的0可以变成任意的数。0可以转化成任意整数,包括负数,显然求LIS时尽量把0都放进去必定是正确的。因此我们可以把0拿出来,对剩下的做O(nlogn)的LIS,统计结果的时候再算上0的数量。为了保证严格递增,我们可以将每个权值S[i]减去i前面0的原创 2016-07-28 21:26:25 · 405 阅读 · 0 评论 -
动态规划 最长上升子序列(LIS)
O(N2)写法:memset(dp, 0, sizeof(dp))for(i = 0; i dp[i]= 1; for(j= 0; j if(s[j] }}O(nlogn)写法1:( dp[i]存长度为i + 1的上升子序列中末尾元素的最小值)fill(dp, dp + n,原创 2016-07-27 16:44:48 · 4607 阅读 · 0 评论 -
HDU 1003 Max Sum(最大连续子列和)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003DP经典题目,求最大连续子列和,注意还要输出子列的下标。#include #include #include #include #include using namespace std;int dp[100100];int main() { int t;原创 2016-07-27 17:24:43 · 427 阅读 · 0 评论 -
蓝桥杯 算法训练 最大的算式 (动态规划)
题目链接:http://lx.lanqiao.org/problem.page?gpid=T294算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB提交此题 问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号原创 2016-05-23 21:23:45 · 2307 阅读 · 0 评论 -
01背包专题
1、HDU 2602 Bone Collector题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=260201背包裸题,注意压缩路径写法和普通写法的异同。#include #include #include #include #include using namespace std;int dp[1010];int main(原创 2016-05-16 14:29:47 · 901 阅读 · 0 评论 -
UVa 1025 A Spy in the Metro (dp)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3466题目理解:有n(2 求在车站等车的最短时间输入:多组数据, 第一行n,第二行T,第三行n - 1个数t [1] - t [n - 1] (1 算法竞赛入门经典例题9-1原创 2016-05-03 20:03:04 · 340 阅读 · 0 评论 -
nyoj 16 矩形嵌套 (DAG上的动态规划)
矩形嵌套时间限制:3000 ms | 内存限制:65535 KB难度:4描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩原创 2016-04-26 21:22:19 · 784 阅读 · 0 评论 -
HDU 1160 FatMouse's Speed (dp, 最长子序列)
HDU 1160dp[i]表示以第i个结尾的最长序列的长度。参考博客:http://www.cnblogs.com/kuangbin/archive/2011/08/04/2127944.html#include #include #include #include #include using namespace std;const int MAXN =原创 2016-04-06 12:33:17 · 401 阅读 · 0 评论 -
POJ 1836 Alignment (动态规划LIS)
poj 1836参考博客:http://cavenkaka.iteye.com/blog/1542421 感谢!!dp1 【 i 】表示前i个人中以第i个人为末尾的最长递增序列,dp2 【i 】表示后n - i + 1个人中以第i个人为起始的最长递减序列。最后dp1【i】 + dp2【j】(i 而n - ans即为赶走的最少的人数。关于LIS参考了:htt原创 2016-02-28 18:05:51 · 531 阅读 · 0 评论 -
codeforce 721C Journey (DAG上的dp)
题目链接:http://codeforces.com/problemset/problem/721/C题意:给一个DAG,问用不超过T的时间从1到n最多可以经过多少个点.要求输出一条路径;输入第一行n, m, t, n个点,m条边,时间为t。下面m行条边。看到是DP加上Graph我就滚去睡觉了....状态转移方程是这样的 dp[i][j]表示在经过了i个城市原创 2016-10-01 15:21:15 · 741 阅读 · 0 评论