随笔分类 -  DP

摘要:题目链接 问题分析 如果这个图是个DAG,那么问题就简单了。按照拓扑序的逆序做DP即可。 那么问题就在于环。于是借助SPFA的想法,更新某个节点后向它的父亲拓展,直至不能更新。 这里需要注意把可能要被更新的节点入队,而不是确定要被更新的点,否则可能TLE。具体见参考程序。 参考程序 #include 阅读全文
posted @ 2021-07-16 13:19 chy_2003 阅读(74) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2019-10-27 23:26 chy_2003 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-24 07:54 chy_2003 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-21 16:03 chy_2003 阅读(10) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-14 20:26 chy_2003 阅读(4) 评论(0) 推荐(0)
摘要:"题目链接" 问题分析 ~~吐槽一下这个预处理比DP还长的题……~~ 首先对限制从小到大排序,然后不难发现对于每一种大小限制都是独立的。离散后考虑$F[i][j]$表示以$i$结尾,上一个音高为限制大小的位置$j$的方案种数。不难发现对于一些右端点相同的限制,左端点最右的限制才有效。这样就可以$n^ 阅读全文
posted @ 2019-08-02 18:48 chy_2003 阅读(223) 评论(0) 推荐(0)
摘要:"题目链接" 解题思路 简单的DAG上DP即可。 参考程序 c include using namespace std; const int Maxn = 100010; const int Maxm = 200010; struct edge { int To, Next; }; edge Edg 阅读全文
posted @ 2019-07-25 15:21 chy_2003 阅读(137) 评论(0) 推荐(0)
摘要:解题思路 首先考虑最暴力的做法。对于每一步,我们都可以枚举每一条边,然后更新每两点之间经过$k$条边的最短路径。但是这样复杂度无法接受,我们考虑优化。 由于点数较少(其实最多只有$200$个点),$N$较大,考虑优化$N$。我们发现,其实可以直接从经过$i$条边的最短路和经过$j$条边的最短路推出经 阅读全文
posted @ 2018-10-12 14:15 chy_2003 阅读(146) 评论(0) 推荐(0)
摘要:解题思路 我们很愉快地发现了这题可以离线。然后我们就尝试预处理所有时间所有点对间的方案数。我们将其维护在$F$里。$F[i][j][k]$表示从$i$到$j$,经过$k$个点的方案数。 当我们从$k$向$k+1$转移的时候,我们枚举点$u$、$v$,如果$u$到$v$有一条边,那么我们将$F[i][ 阅读全文
posted @ 2018-10-11 18:24 chy_2003 阅读(105) 评论(0) 推荐(0)
摘要:概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行。时间复杂度O(δX × δY),空间复杂度O(1)。 参考程序段 TopCoder SRM 667 Div.2 T2 解题思路 可能大家的 阅读全文
posted @ 2018-09-13 11:22 chy_2003 阅读(137) 评论(0) 推荐(0)