摘要: 背包问题的模板,以后可以背下来套用噢。 但是更多的时候要像 传送门 一样有转换的过程 阅读全文
posted @ 2019-10-21 20:31 逐梦——无畏 阅读(90) 评论(0) 推荐(0)
摘要: 这是动态规划的分组背包 阅读全文
posted @ 2019-10-21 20:06 逐梦——无畏 阅读(184) 评论(0) 推荐(0)
摘要: 这是动态规划之01背包。 与01背包所不一样的是它的花费价值是浮点型的,所以状态改为dp[i]代表获得i的价值需要(double)dp[i]的代价,由此可知得到答案时反向遍历(优化时间复杂度),并且输出的是i这个变量。 这题计算的是概率,所以dp更新时用乘法而不是加法。 阅读全文
posted @ 2019-10-21 19:24 逐梦——无畏 阅读(90) 评论(0) 推荐(0)
摘要: 这是一题模拟加桶排。 先分支判断是行相邻还是列相邻,再用2个数组分别存储行和列的过道可以隔开多少对,找出可以隔开的最多的过道,并输出。 阅读全文
posted @ 2019-10-21 14:29 逐梦——无畏 阅读(123) 评论(0) 推荐(0)
摘要: 这题是动态规划,贪心和排序。 状态表示:d[i]表示前i位的最长满足要求子序列的长度。 状态转移:当重量严格大于前一只并且速度严格大于前一只的时候更新转移数组 d[i]=max(d[i],d[j]+1); 因为不仅要求输出最长的子序列的长度,还要求输出编号,就注意推理,为了减少时间复杂度把小老鼠的体 阅读全文
posted @ 2019-10-21 12:56 逐梦——无畏 阅读(73) 评论(0) 推荐(0)
摘要: 这题是动态规划之多重背包。 状态表示:dp[i]表示花费i元可以获得的最重粮食重量 阅读全文
posted @ 2019-10-21 12:48 逐梦——无畏 阅读(104) 评论(0) 推荐(0)
摘要: 这题是动态规划,枚举 状态表示:dp[i][j]代表从(1,1)走到(i,j)位置可以获得的最多幸运值 转移方程:(1)如果i==1并且j==1幸运值就为a[i][j]的本身 (2)如果i-1>0 dp[i][j]=max(dp[i][j],dp[i-1][j]+a[i][j]); (3)如果j-1 阅读全文
posted @ 2019-10-21 12:41 逐梦——无畏 阅读(78) 评论(0) 推荐(0)
摘要: 这题是动态规划,需要:打表,字符数组,动态规划。 状态表示:dp[i][j][k]表示的是有i个A,j个B和k个C满足要求的有多少种 转移方程:dp[i][j][k]=dp[i-1][j][k]+dp[i][j-1][k]+dp[i][j][k-1] 边界:dp[0][0][0]=1; 因为会暴in 阅读全文
posted @ 2019-10-21 12:27 逐梦——无畏 阅读(134) 评论(0) 推荐(0)