Fork me on GitHub

随笔分类 -  动态规划

摘要:题目: "P5124 [USACO18DEC]Teamwork" 解析: 动态规划,设$f[i]$表示到第$i$位的最大值,我们枚举i之前的j个位置$(j using namespace std; const int N = 1e6 + 10; int n, m, num; int a[N], f[ 阅读全文
posted @ 2019-11-03 09:28 Chrety 阅读(320) 评论(0) 推荐(0)
摘要:题目: "P1523 旅行商简化版" 解析 可以看做是两个人同时从西往东走,经过不一样的点,走到最东头的方案数 设$f[i][j]$表示一个人走到i,一个人走到j的最短距离($i using namespace std; const int N = 1010; int n, m; double f[ 阅读全文
posted @ 2019-10-17 16:07 Chrety 阅读(279) 评论(1) 推荐(0)
摘要:题目: "P2704 [NOI2001]炮兵阵地" 解析: 和互不侵犯一样 就是多了一格 用$f[i][j][k]$表示第i行,上一行状态为$j$,上上行状态为$k$的最多的可以放的炮兵 发现$100\times 1024\times 1024$开不下 还是通过简单的搜索发现就算$m==10$时合法 阅读全文
posted @ 2019-10-11 16:49 Chrety 阅读(357) 评论(5) 推荐(0)
摘要:题目: " 10172. 「一本通 5.4 练习 1」涂抹果酱" 解析: 三进制的状压DP 经过简单的打表发现,在$m=5$时最多有$48$种合法状态 然后就向二进制一样枚举当前状态和上一层的状态进行转移就好了 由于第$k$行是给定的,所以转移时要特判一下第$k$行,并且注意下一$k=1$的情况 设 阅读全文
posted @ 2019-10-10 19:59 Chrety 阅读(370) 评论(6) 推荐(0)
摘要:题目: "1799: [Ahoi2009]self 同类分布" 解析: 设$f[pos][SumDigit][rem]$为第$pos$位,各位数和为$SumDigit$,当前余数为$rem$的数的个数 要求$n$可以被各位数整除,也就是$n\%SumDigit==0$ 这个题,我们枚举一下各位数的和 阅读全文
posted @ 2019-08-16 10:10 Chrety 阅读(343) 评论(0) 推荐(0)
摘要:题目: "3209: 花神的数论题" 解析: 二进制的数位DP 因为$[1,n]$中每一个数对应的二进制数是唯一的,我们枚举$1$的个数$k$,计算有多少个数的二进制中有$k$个$1$ 设$n$的二进制一共有$num$位,有$sum[i]$个数的二进制中有$k$个$1$, 答案就是$\prod_{i 阅读全文
posted @ 2019-08-15 15:57 Chrety 阅读(262) 评论(0) 推荐(0)
摘要:题目: "1040: [ZJOI2008]骑士" 解析: 假设骑士$u$讨厌骑士$v$,我们在$u$,$v$之间连一条边,这样我们就得到了一个奇环树(奇环森林),既然是一颗奇环树,我们就先考虑把环断开,设断开边边连接的两点是$rt1$,$rt2$,断环的话直接标记这条边不能经过就好了 根据题意,我们 阅读全文
posted @ 2019-08-15 07:36 Chrety 阅读(257) 评论(0) 推荐(0)
摘要:题目: "1864: [Zjoi2006]三色二叉树" 解析: 用$f[u][0/1/2]$表示以$u$为根,颜色为绿/红/蓝时最多的数量 转移没啥好说的 $f[u][0] = max(f[l][1] + f[r][2], f[l][2] + f[r][1]) + 1$ $f[u][1/2] = m 阅读全文
posted @ 2019-08-14 19:50 Chrety 阅读(214) 评论(0) 推荐(0)
摘要:题目: "1003: [ZJOI2006]物流运输" 解析: 最短路+DP 我们用$no[i][j]$来表示$i$在第$j$天不可以经过 用$cost[i][j]$表示第$i$天到第$j$天的花费 在最短路的时候判断一下在第$i$天到第$j$天中哪些码头不可以走,在做最短路时跳过 最后设f[i]表示 阅读全文
posted @ 2019-08-13 17:16 Chrety 阅读(207) 评论(0) 推荐(0)
摘要:思路: 非常套路性的一个东西,记录一下,防止遗忘 设$f[i]$表示以$i$为根,到其子树的叶节点的最大距离。 考虑如何用子节点更新父节点, 当前点到叶节点的最大距离=max{子节点到叶节点的距离+当前点到子节点的距离}。 设$u$为当前节点,$v$为$u$的子节点,$dis(u,v)$是从$u v 阅读全文
posted @ 2019-07-17 11:15 Chrety 阅读(1243) 评论(0) 推荐(1)
摘要:题目 "String painter " 给出两个字符串s1,s2。对于每次操作可以将 s1 串中的任意一个子段变成另一个字符。问最少需要多少步操作能将s1串变为s2串。 解析 太妙了这个题,mark一下。 这个题先考虑怎么由空串转化s2, $f[i][j]$表示从空串到s2最少的次数, 则有$f[ 阅读全文
posted @ 2019-07-15 21:41 Chrety 阅读(267) 评论(0) 推荐(0)
摘要:题目 "P1018 乘积最大 " 解析 区间DP 设$f[i][j]$表示选$i$个数,插入$j$个乘号时的最大值 设$num[i][j]$是$s[i,j]$里的数字 转移方程就是$f[i][k] = max(f[i][k], f[j][k 1] num[j + 1][i])$ $i$为当前区间长度 阅读全文
posted @ 2019-07-13 21:41 Chrety 阅读(483) 评论(0) 推荐(0)
摘要:题目 "P1108 低价购买" 解析 这题做的我身心俱惫,差点自闭。 当我WA了N发后,终于明白了这句话的意思 当二种方案“看起来一样”时(就是说它们构成的价格队列一样的时候),这2种方案被认为是相同的。 这题有两问,第一问显然最长严格下降子序列,一看数据范围:5000,跟最长严格上升子序列一样,$ 阅读全文
posted @ 2019-05-24 19:10 Chrety 阅读(256) 评论(5) 推荐(1)