动态规划 dp
文章平均质量分 75
cszhpdx
欸嘿
展开
-
CF1633D Make Them Equal 题解
首先分析每一次操作,我们发现这些操作有两个重要的特征:互相独立操作过程中每一个 aia_iai 单调不减由此我们可以分析出,每一个 aia_iai 要么一直操作到 ai=bia_i=b_iai=bi,要么不动,这很像一个背包,考虑如何转化。我们发现对于相同的 bib_ibi,最优操作的步数一定相同(特征 1),令 pip_ipi 表示将 1 变换成 iii 的最少次数,那么此时我们有 nnn 个物品,第 iii 个代价为 pbip_{b_i}pbi,价值为 cic_ici,这就原创 2022-02-03 16:23:38 · 657 阅读 · 0 评论 -
U180094 选苹果
官方题解传送门对于 10% 的数据显然爆搜每一个苹果选不选就行了,加不加优化无所谓。这道题说不能相邻,所以考虑用组合数学,当我们选 xxx 个苹果的时候,剩下的有 n−xn-xn−x 个苹果,剩下的每两个之间可以放至多一个苹果,我们把 xxx 随便插到这 n−x+1n-x+1n−x+1 个空里面(包括两端),这时有 Cn−x+1xC_{n-x+1}^xCn−x+1x 种方法,这时我们的答案就是:∑i=1⌊n−12⌋Cn−i+1i\sum_{i=1}^{\lfloor \frac{n-1}{2}原创 2021-09-20 16:24:13 · 71 阅读 · 0 评论 -
CF1561D1 Up the Strip (simplified version) 题解
容易想到 fif_ifi 表示走到 iii 的方案数和转移方程(一开始我这个蒟蒻居然还觉着是刷表呢fx=(∑i=x+1nfi)+(∑{fy∣x=⌊yk⌋})f_x=(\sum_{i=x+1}^nf_i)+(\sum\{f_y | x=\lfloor \frac{y}{k} \rfloor\})fx=(i=x+1∑nfi)+(∑{fy∣x=⌊ky⌋})第一项很好求,维护一个后缀和,难点主要是在第二项我们可以枚举 kkk ,不超过 n\sqrt{n}n 个,这时我们的 kkk 固定下来了原创 2021-08-25 13:59:33 · 323 阅读 · 0 评论 -
poj 2411 Mondriaan‘s Dream
题目传送门:2411 – Mondriaan’s Dream (poj.org)OpenJudge - 1413:Mondriaan’s Dream这题一上来看数据范围就知道了,不是搜索就是状压 dp ,再加上多组数据,肯定就是状压 dp ,很容易想到 f[i][j]f[i][j]f[i][j] 表示第 i 行状态为 j 时的方案数,因为每一行的状态都只和,接下来就是确定 j因为每一个格子不是被横的方块覆盖就是被竖着的方块铺着,所以很容易想到 j 的 i 位表示是否是被横着铺的,但是我们发现这样没有原创 2021-06-29 19:48:25 · 176 阅读 · 0 评论 -
P2258 子矩阵
传送门:P2258 [NOIP2014 普及组] 子矩阵这题上来一看这数据范围,一上来开始就写暴力搜索,先从 n 行里选出 r 行,再从 m 列里选出 c 列,然后等所有都选完之后再生成子矩阵,最后再计算一遍,取最小值,复杂度 O(2n×2m)O(2^n \times 2^m)O(2n×2m) ,由于数据过于水,拿了 60 pts ,代码:#include<cstdio>#include<cstring>#include<iostream>#include<原创 2021-06-05 11:08:07 · 218 阅读 · 2 评论 -
P2732 [USACO3.3]商店购物 Shopping Offers
题目传送门:P2732 [USACO3.3]商店购物 Shopping Offers这道题乍一看,压根看不懂,再看,看懂题了,第三眼,发现是动规,冥思苦想了半天想出来一个特别暴力的办法首先我瞄准了小数据,最多只会有 5 种,所以我决定直接五维 dpf[i][j][k][l][m]f[i][j][k][l][m]f[i][j][k][l][m] 表示在第一个物品有 iii 个,表示在第二个物品有 jjj 个,表示在第三个物品有 kkk 个,表示在第四个物品有 lll 个,表示在第五个物品有 mmm 个,原创 2021-06-05 11:09:07 · 278 阅读 · 0 评论 -
P2737 [USACO4.1]麦香牛块Beef McNuggets
题目传送门:P2737 [USACO4.1]麦香牛块Beef McNuggets简化题意:其实就是给你 nnn 个数,a1a_1a1 到 ana_nan ,对于每个数取任意个,把它们的和放到集合 SSS 中,找出在集合 SSS 中最大的正整数 xxx ,使得 $x \not \in S $这题大概思路就是确定两个范围,设有两数 m, rm,\ rm, r,它们满足:所有的测试点里的答案 ≤m\le m≤m如果凑出来的数有上限,那么 {x∣x∈[r,m],x∈N+}⊆S\{x原创 2021-06-05 11:09:55 · 152 阅读 · 0 评论