ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022-01-05省选模拟赛9

2022-01-09 11:03:29  阅读:151  来源: 互联网

标签:01 省选 容斥 trie code 2022 非树边 dp 关键点


灾难

算法 : 支配树 + \(lca\)

裸的支配树

code

「AHOI _ HNOI2018」毒瘤

算法 : 虚树 + dp

85分

如果不考虑非树边,那么这道题可以直接求独立集个数。

因为非树边不超过 \(11\) 条,所以可以对非树边进行容斥。强制某条非树边两端的点被选择。然后容斥。

这样复杂度不高,但是过不去。

100分

发现在每次容斥时,只有某些关键点处的转移会改变,关键点之间的转移是固定的。那么考虑先把固定点之间的转移系数求出来。然后建虚树,在虚数上 dp。

设 \(f_{u,0/1}\) 表示 dp 到点 \(u\) , 点 \(u\) 是/否被选择的方案数.

那么显然关键点之间的转移形如 \(\begin{cases}f_{u, 0} = k_{v,0,0}f_{v, 0} + k_{v, 1, 0}f_{v, 1}\\f_{u, 1} = k_{v, 0, 1}f_{v, 0} + k_{v, 1, 1} f_{v, 1}\end{cases}\)

所以关键在于求出转移系数。求系数就和求独立集个数一样了。相当于舍去每个关键点的子树,然后求独立集个数。

code

「SHOI2017」寿司餐厅

算法 : 网络流

这道题是最大权闭合子图。如果选择了 \(d_{i, j}\) 就一定要选它的所有子段,即 \(d_{i, j - 1}\) 和 \(d_{i + 1, j}\) 以及它们的所有子段, 所以需要从 \(d_{i, j}\) 向 \(d_{i, j - 1}\) 和 \(d_{i + 1, j}\) 连边。特殊的如果选择了 \(d_{i, i}\) 会产生 \(a_i\) 的代价。所以 \(d_{i, i}\) 要向 \(val_{i}\) 连边。\(val_{i}\) 的值为 \(-a_i\) . 同时还要向 \(Val_{a_i}\) 连边, \(Val_{a_i}\) 值为 \(ma_i^2\)。然后跑最大权闭合子图就行.

code

「2017 山东三轮集训 Day6」C

没有修改操作

那就是可持久化trie的板子. 把可持久化trie建出来,然后二分就行。

只有 \(xor\) 操作

还是可持久化trie的板子。可以参考异或粽子。

全部

对于 \(And\) 和 \(Or\) 操作。其实是把trie的左右子树合并。有效的合并最多有 \(logx\) 次。所以在存在有效合并的情况下直接暴力重构复杂度正确。

标签:01,省选,容斥,trie,code,2022,非树边,dp,关键点
来源: https://www.cnblogs.com/i209M/p/15780467.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有