dp
弱鸡单排
这个作者很懒,什么都没留下…
展开
-
2091.4.3 51nod 1021 石子归并
题意:给出n个数字,求出最小组合和,1 2 3 4 => 3 3 4(3) => 6 4(9) => 10(19) 1 2 3 4 => 1 5 4(5) => 1 9(14) => 10(24) 1 2 3 4 => 1 2 7(7) => 3 7(10) => 10(20)。 区间dp,dp[i][j]表示 从i到j最小...原创 2019-04-03 23:57:36 · 111 阅读 · 0 评论 -
2019.4.4 51nod 1086 背包问题 V2
题意:多重背包 裸题,直接模板。 #include<bits/stdc++.h> using namespace std; int dp[50005]; int cc[105],vv[105],mm[105]; int n,W; void b0(int c,int v){ for(int i = W;i>=c;i--){ dp[i] = ma...原创 2019-04-05 23:18:23 · 141 阅读 · 0 评论 -
2019.4.4 51nod 1043 幸运号码
转载:http://www.cnblogs.com/geloutingyu/p/6329594.html 第一眼看过去,没有什么思路,然后也没想到用数位dp怎么写,看了很久大神的代码,才想明白人家是怎么想的 #include <bits/stdc++.h> #define ll long long using namespace std; const int mod=1e9+...转载 2019-04-05 23:22:07 · 133 阅读 · 0 评论 -
51nod 1055最长等差数列
我太菜了,没想到这个题怎么做 给出大神的链接 链接:https://blog.csdn.net/liuyanfeier/article/details/50760657 思路:dp[i][j]表示以i,j为开头的等差数列,从后向前扫描 当a[i]+a[k]==2*a[j]时,dp[i][j] = dp[j][k]+1。 #include<iostream> #inclu...原创 2019-09-17 19:05:48 · 124 阅读 · 0 评论 -
51nod 1084 矩阵取数问题 V2
题目: 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上。第1遍时只能向下和向右走,第2遍时只能向上和向左走。两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值。 例如:3 * 3的方格。 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:17。1 -> 3 -> 3 -> 3 -&g...原创 2019-09-17 20:31:22 · 138 阅读 · 0 评论 -
力扣 343. 整数拆分
题目描述: 解答: 这个题看完题意之后,大致可以猜到是类似dp的题,dp[i]表示数字i的最大乘积,dp[i] = max(dp[i],dp[j]*dp[i-j]),然后暴力即可,对于这种题,好像有公式。 下面附上代码: class Solution { public: int dp[60]; void init(){ dp[1] = 1; dp...原创 2020-01-16 17:46:33 · 232 阅读 · 0 评论