动态规划
文章平均质量分 62
Polya_Xue
这个作者很懒,什么都没留下…
展开
-
双目立体视觉-特征匹配SGM算法-动态规划
学习SGM 算法时,在最小化能量方程时使用到了动态规划,现写下一些自己关于动态规划(Dynamic Programming,DP)的理解。Action前景: 在现实生活中,经常会遇到一种特殊的过程,多阶段决策。在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。因此各个阶段决策的选取不能任意确定,它依赖于当前面临的状态,又影响以后的发展。当各个阶段决策确定后,就组成一个决策序列,因而也就确定了整个过程的一条活动路线.这种把一个问题看作是一个前后关联具有链状结构的多阶段过程就...原创 2020-07-07 13:25:13 · 582 阅读 · 0 评论 -
DAG最长路 uva437
题意:有n种立方体,每种无穷个。要求选一些立方体摞成一根尽量高的柱子,使得每个立方体的底面长宽严格小于它下方立方体的底面长宽解析:实际上每种立方体只有三次使用机会,先做预处理,给n*3种立方体编号。因为是严格小于的,所以这个图是DAG,可以套用DAG最长算法。建图,G[i][j]表示i到j有一条连线,j在i的上方。d[i]表示以i为起点的最长高度。对于底面长宽最大的立方体来说,以它为起点的长度就是...原创 2018-03-05 20:34:41 · 260 阅读 · 0 评论 -
hdu1297(dp)
题意:对于n个学生排成一列,若是有女生必须两个人以上one by one,问可以有几种排法出处:蓝飞技术部落格思路如下:一个长度n的队列可以看成一个n - 1的队列再追加的1个小孩,这个小孩只可能是:a.男孩,任何n - 1的合法队列追加1个男孩必然是合法的,情况数为f[n - 1];b.女孩,在前n - 1的以女孩为末尾的队列后追加1位女孩也是合法的,转载 2017-08-07 12:20:26 · 269 阅读 · 0 评论 -
hdu1246递推
题意:自己推了很久。。没有推出来,再接再厉f[i][j] = f[i][j - 1] + f[i - 2 * j + 1][j - 1] ,f[i][j]代表了i个方格第一行不超过j 解得的个数。#include int f[500][500]; const int maxn = 300; void init()转载 2017-08-04 19:30:06 · 258 阅读 · 0 评论 -
h1506动态规划
这道题写的时候参考了网上的思路,用了递推,然而超时然后再参考了别人的,发现了为什么超时,可以说用了动态规划的精髓吧呵呵呵如果不会了,再写一遍#include #include #include #include using namespace std;long long int a[100005];int l[100005],r[100005];int ma原创 2017-03-23 15:12:09 · 283 阅读 · 0 评论 -
h1231动态规划
最大连续子序列,先用递推写了一个,过了//u1231#include #include #include using namespace std;int a[10005];int main(){ int n; while(scanf("%d",&n)&&n!=0) { for(int i=0; i原创 2017-03-23 15:16:56 · 263 阅读 · 0 评论 -
h2571动态规划
要建立两个数组,而我只建立了一个,还是没怎么写出来,继续努力#include #include #include #include using namespace std;int a[1005][1005],b[1005][1005];int main(){ int c,n,m; scanf("%d",&c); while(c--)原创 2017-03-23 18:46:19 · 191 阅读 · 0 评论 -
dp 位运算
描述小Hi现在有n个物品,每个物品都有一个价值。并且这n个物品总共有m个不同的属性,每个物品都具有其中若干属性。小Ho要从中选出若干物品,满足每个属性都正好有奇数个物品拥有,且被选出的物品价值总和最大。你能帮助小Ho完成任务么输入第一行一个数T(第一行两个数n,m(1接下来每两行描述一件物品。对于每一件物品:第一行两个原创 2017-03-31 22:33:20 · 285 阅读 · 0 评论 -
h1176动态规划
自己写的咯#include#include#include#include#includeusing namespace std;int v[12][100005],dp[12][100005];int main(){ int n,m,t; while(scanf("%d",&n)&&n!=0) {原创 2017-04-03 15:31:16 · 218 阅读 · 0 评论 -
h1203动态规划
对动态规划了解更多啦话说,盲打可真痛苦,尤其是那些字符#include#include #include#includeusing namespace std;int v[10005];double p[10005],dp[10005];int main(){ int n,m; while(scanf("%d %d",&n,&m)原创 2017-04-03 18:07:25 · 240 阅读 · 0 评论 -
h2159动态规划
#include #include#include #include #include using namespace std;struct node{ int ni,mi;} v[100];int dp[100][100];int main(){ int n,m,k,s; while(~scanf("%d %d %d %d原创 2017-04-06 19:52:22 · 191 阅读 · 0 评论 -
poj2794dp
动归这道题题意是有九行四列的字母,对于每一行的首字母,如果和另一行相同那么就可以消掉,如果有n多种选择那么选择某一个的概率就是1/n,问最后全部消掉的概率我首先的想法是对于第一列的字母,算出可以得组合共有n个,那么选择其中一个的概率就是1/n,然后递归分别进入每一个选择中,继续算,比较麻烦的是标记,假设对于第一个选择,它每走一次,首字母就会变一次。然后看了大佬的原创 2017-06-24 18:28:03 · 249 阅读 · 0 评论 -
hdu1293(dp大整数)
这道是自己写的dp大整数加法,可以用来做模板#include"stdio.h"#include"string.h"#define N 1005int dp[N][N];void big(){ dp[1][0]=1; dp[1][1]=3; dp[2][0]=1; dp[2][1]=7; for(int i=3;i1002;i++)原创 2017-08-08 10:48:33 · 316 阅读 · 0 评论