摘要: 设dp[i][j]表示跳完这一段的最大值,考虑状态转移,由于每次只能向右跳或者向左跳,且跳跃次数即为区间的长度 dp[i][j] = max(dp[i-1][j]+(j-i+1) * arr[i],dp[i][j-1]+(j-i+1) * arr[j]); https://ac.nowcoder.c 阅读全文
posted @ 2023-04-24 22:11 重生之我是菜鸟 阅读(42) 评论(0) 推荐(0)
摘要: https://www.luogu.com.cn/problem/P1164 求方案数 dp[i][j] += dp[i-1][j] //不取第i个菜的方案数 dp[i][j] += dp[i-1][j-arr[i]] //j>=arr[i]时,取第i个菜的方案数 点击查看代码 #include<b 阅读全文
posted @ 2023-04-24 20:30 重生之我是菜鸟 阅读(58) 评论(0) 推荐(0)
摘要: https://ac.nowcoder.com/acm/contest/24213/1036 一眼区间dp 枚举中间节点,将左右区间合并,左区间为dp[i][k],右区间为dp[k][j],此次答案的贡献为arr[k]* arr[i]* arr[j] 数据过大,使用int128 点击查看代码 #in 阅读全文
posted @ 2023-04-24 19:36 重生之我是菜鸟 阅读(71) 评论(0) 推荐(0)
摘要: https://ac.nowcoder.com/acm/contest/24213/1035 一眼分组背包 f[i][j]:从前i个中选是否能组成j的集合。 属性:true / false 最后统计答案即可,但铁T 利用bitset优化 f[i] |= f[i-1]<<(j * j) ,f[i]表示 阅读全文
posted @ 2023-04-24 18:35 重生之我是菜鸟 阅读(18) 评论(0) 推荐(0)