You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

TODO

挖坑待填

https://blog.csdn.net/yingxue_cat/article/details/133648992

树上背包 发现这个也不会。枯。希望现学来得及吧。

P2014 [CTSC1997] 选课 虽然以前写过,但似乎是没咋看懂式子稀里糊涂敲上去的( 啊啊啊以前好多这种稀里糊涂照着题解思路/老师代码贺上去的题,每当提起我都记得做过,每当考到就发现不会,深受其害/ll

这题是个森林,则对每棵树的根节点向 0 0 连边,使之变成一棵树。 设 fi,j,k <0A> <0A> , <0A> , <0A> 表示子树 i <0A> 的前 j <0A> 个儿子,已经选了 k <0A> 门课的最大值。注意:必须选点 i <0A>

那么 fnow,tot,j=max(fnow,tot,j,fnow,tot1,jk+fv,mxtot,k) <0A> <0A> <0A> <0A> , <0A> <0A> <0A> , <0A>

max ( <0A> <0A> <0A> <0A> , <0A> <0A> <0A> , <0A> , <0A> <0A> <0A> <0A> , <0A> <0A> <0A> 1 , <0A> <0A> + <0A> <0A> , <0A> <0A> <0A> <0A> <0A> , <0A> ) 。同样注意 k <0A> 只能循环到 j1 <0A> 1 。 类似背包进行滚动数组优化。(似乎滚动了反而更好写() 也不知道自己到底会没会/kk

P4516 [JSOI2018] 潜入行动 题面看起来还挺套路,但我不会,树形 dp 是真忘光了啊啊啊啊啊怎么办 式子好长不想写...算了口胡一下吧。 设 dp[u][j][0/1][0/1] <0A> <0A> [ <0A> ] [ <0A> ] [ 0 / 1 ] [ 0 / 1 ] 表示子树 u <0A> 里放了 j <0A> 个,点 u <0A> 放了/没放,是否已经被监听。 于是滚动数组一下推出长下面这样的转移柿子↓ ↓

⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪dp[x][i+j][0][0]=∑dp[x][i][0][0]×dp[v][j][0][1]dp[x][i+j][1][0]=∑dp[x][i][1][0]×(dp[v][j][0][0]+dp[v][j][0][1])dp[x][i+j][0][1]=∑(dp[x][i][0][1]×(dp[v][j][0][1]+dp[v][j][1][1])+dp[x][i][0][0]×dp[v][j][1][1])dp[x][i+j][1][1]=∑(dp[x][i][1][0]×(dp[v][j][1][0]+dp[v][j][1][1])+dp[x][i][1][1]×(dp[v][j][0][0]+dp[v][j][0][1]+dp[v][j][1][0]+dp[v][j][1][1])) { <0A> <0A> [ <0A> ] [ <0A> + <0A> ] [ 0 ] [ 0 ]

<0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 0 ] × <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 1 ] <0A> <0A> [ <0A> ] [ <0A> + <0A> ] [ 1 ] [ 0 ]

<0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 0 ] × ( <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 0 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 1 ] ) <0A> <0A> [ <0A> ] [ <0A> + <0A> ] [ 0 ] [ 1 ]

∑ ( <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 1 ] × ( <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 1 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 1 ] ) + <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 0 ] × <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 1 ] ) <0A> <0A> [ <0A> ] [ <0A> + <0A> ] [ 1 ] [ 1 ]

∑ ( <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 0 ] × ( <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 0 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 1 ] ) + <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 1 ] × ( <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 0 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 0 ] [ 1 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 0 ] + <0A> <0A> [ <0A> ] [ <0A> ] [ 1 ] [ 1 ] ) )

卡 long long 空间,要强制类型转换。我不管,我胡了就是我写了!(确信

不知道啥题 OI wiki 为什么给我推黑题啊,不会/kk 所以写到这吧awa

树形 DP 范学长讲树上问题,顺路回来更新一波。

CF822F Madness 贪心题。胡了篇 lg 题解。

P2607 [ZJOI2008] 骑士 基环树上的 dp。第一次做这种题( 对于每个基环树dfs 找到环的那条边,对于这条边分别钦定 u <0A> 不选/v <0A> 不选,分别 dp 即可。 转移显然。 实现的时候写麻烦了,直接并查集判环就可以,不用 dfs。