![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
ordinarv
努力才是人生的常态
展开
-
HDU-2602 Bone Collector 01背包模板题
题意:容量为V的背包,尽可能装价值更多的石头,输出背包最大的价值 ps:骨头体积和背包容量都可以为0,所以遍历使j要从零开始遍历,就是背包容量为0时也可以装骨头。 ac代码: #include<iostream> #include<algorithm> #include<cmath> #include<cstring> using name...原创 2018-08-09 20:27:07 · 136 阅读 · 0 评论 -
POJ 3624 Charm Bracelet(01背包裸题-空间优化)
题意: ...基础背包问题,大概意思是,承重m的背包,有n个物品,第i个物品重w[i],价值p[i],求背包能装入物品的最大价值 把重量设为数组下标 即c[i],i为物品重量,c[i]为背包重i物品的价值 一个公式:c[j]=max(c[j],c[j-w[i]]+p[i]); 意思是,不加上第i个物品时背包的价值,与重量j减去第i个物品重量后背包的价值加上第i个物品的价值比较 不同的是...原创 2018-08-09 23:02:41 · 437 阅读 · 0 评论 -
最长公共子序列,字串
首先说明子序列和子串的区别 子串是必须连续的(相邻),是特殊的子序列。 对于一般的LCS问题,都属于NP问题。当数列的量为一定的时,都可以采用动态规划去解决。 最直接的解法自然是找出两个字符串的所有子字符串进行比较看他们是否相同,然后取得相同最长的那个。对于一个长度为n的字符串,它有n(n+1)/2 个非空子串。所以假如两个字符串的长度同为n,通过比较各个子串其算法复杂度大致为O(n4)。这...原创 2018-12-02 18:49:09 · 150 阅读 · 0 评论 -
哈尔滨理工大学第八届-B轮廓线DP
#include <bits/stdc++.h> using namespace std; const int maxn = 1e3 + 5; const int INF = 0x3f3f3f3f; const int Mod = 1e9 + 7; int dp[15][1025], cur; int n, m; void updata(int a, int b) {...原创 2018-12-02 18:50:39 · 123 阅读 · 0 评论