随笔分类 - 动态规划
摘要:https://ac.nowcoder.com/acm/contest/43058/C 思路 一个很简单的dp 记录每一位i可以给下一位的j提供的方案数 理论上层数应该倒着枚举,但是我这个写法恰好避免了重复,所以正着倒着都是对的 代码 #include<algorithm> #include<ios
阅读全文
摘要:"题面" 很明显,这道题要求最短路,如果换路线不要钱的话,我们直接对于每天分别求最短路即可,但可惜的是要钱,那就dp啊 设$f[i]$为第一天到第$i$天最小费用,那么$f[i]=min(f[j 1]+(i j+1) l+K)(1 include include include include in
阅读全文
摘要:"我是题面" 题面这么简洁,清晰,易懂,真是不可多得的良心题面(~~比我上一篇博客那道题良心多了~~) 我们会发现m只有2 如果m是一个较大的数的话可能会麻烦一点,只有2的话就很好做了 我们先来考虑m为1的情况,很简单,$f[i][j][0/1]$表示是否选第i个,已经选了j个连续矩形,最大为多少,
阅读全文
摘要:"我是题面" 恩,贪心,鉴定完毕。 一个物品是否放进来,取决于它是否能对答案做出贡献。 那物品i的贡献就是$w[i] r[i]$ 可是收益的减少是会叠加的 那就是$w[i] j r[i]$,j表示选择物品i后又选择的物品数量 可是我怎么知道选择i后又会选择几件物品啊 那么我们引入一个新的值$d[i]
阅读全文
摘要:其实有两种方法来解这道题 第一种:找规律(~~非正经~~) 一看,这玩意像是个杨辉三角,还左右对称呢 因为新插入一个数$n$,有$n+1$个位置可以选,所以总数就乘$n+1$,对应的$f[n+1][i]$也就等于$f[n][i]$了大概。可是一看,不大对,好像不是这样。那么就像,反正加一个数要么没变
阅读全文
摘要:题目出处 s[i]表示前i个人对神牛的膜拜情况,如果膜拜神牛甲则s[i]=s[i-1]+1否则s[i]=s[i-1]-1。那么如果|s[i]-s[j]|<=m或者=i-j+1(也就是人数差不超过m或者全部崇拜某一个神牛),f[i]=min(f[i],f[i-j]+1) 下放代码
阅读全文
摘要:题目 动规方程 f[i]=min(f[i],f[i−j]+sum) 我们默认为新加一头牛,自占一条船。想象一下,它不断招呼前面的牛,邀请它们坐自己这条船,当且仅当所需总时间更短时,前一头奶牛会接受邀请,最多邀请前面的所有奶牛一起坐这条船。
阅读全文