2024 6月

图论建模

CF1989f,好题,考虑染色有个先后顺序,怎么办,如果同一行中有R有B,则肯定先染B那一列。列同理,发现这种不好用正常东西刻画的限制,考虑建图(md我NOIP就死在这种东西上了),u向v连边表示u要先于v染色,然后发现一个SCC中的东西要一起染,整体二分后用并查集维护SCC大小。

cdq分治

分治成两个序列的时候也是对某一维的二分

模拟赛做到的牛逼东西

image
\(n<=18,V<2^{60}\)
考虑\(4^n\)的dp是好做的,从上到下填数,记录顶到上界的集合,枚举一个集合。考虑怎么搞到\(2^n\)。我们发现怎么也要少枚举一个集合,但这两个信息又都是必须的,怎么办呢?我们考虑dp的过程要知道初始状态,终止状态。这两个乘起来已经\(4^n\)了,所以我们希望可以对于一个终止状态快速算出对应的初始状态的所有方案。我们考虑前缀和后容斥。具体的,设\(dp_s\)为所有的满足是\(s\)的超集的集合的方案数,\(coe_s\)表示所有限制是\(s\)的超集的集合的可行填放方案数。那么可有转移
here
\(dp'_s=dp_s*coe_s\)。为什么可以这样呢?因为填放后限制肯定是原来的一个子集,且消失的位置肯定对应的\(r_i\)肯定是1。所以这一通卷积下来会出现两种情况:1.正好是这个状态。2.是这个状态的超集。(注意,我tm在写到这里的时候以为会出现不合法的情况,其实不会,因为我们只把位置为1的f给前缀和了)然后容斥掉第2种情况就可以了

trick

某些奇怪的几个东西组合起来的,没什么好性质的,可以考虑枚举余数后就有性质了。比如问你几个东西组合起来的价值最小多少才能满足方案数>=x的话,显然没单调性,但每个对a1取模的余数相同的位置显然有单调性,甚至有决策单调性。

正难则反(容斥反面限制)

trie优化dp

CF1610G,发现肯定是删连续的几段,然后考虑倒着建trie,记录当前的决策点,每次往决策点上插点

DP

CF1450G,考虑一个\(3^n\)的dp,\(dp_s\)表示s集合能否转换。可以把集合换成一个字符,或者合并几个成一个,瓶颈为后者,考虑后者在区间相交时合法的话一定会被前者计入,那么只需要转移区间不相交即可。
CF1615F,如果我们把所有偶数位置的值取反,那么操作相当于交换相邻两个值,匹配肯定是按顺序匹配,算贡献即可。
CF1612F,操作顶多\(logn\)轮,把轮数记在dp状态中做完了。

构造

CF1237H,考虑\((2k,2k+1)\)这样的只会区间内交换,那么00,11的数量是定的。如果我们操作\((2*k,2*k+2)\)的话发现会把\((2*k+2,2*k+1)\)放到开头且其他不变,那么第一步先使得01(s),10(t)数量相等再做即可。
CF1119G,考虑答案下界为\(\frac{\sum{a_i}}{n}\)取上整,考虑能否构造出来,我们肯定是先集中解决一个,然后我们希望尽量少的浪费,即正好把某一个弄成0,我们考虑如果(i-1)可以这么构造出来,那么i只需要存在某一个前缀\(s_i\)的和为\({sum_i}对n取模\)即可然后做完了。
p10674,很好的树形dp,一眼建园方树,方点周围肯定都算,考虑对一个t计算s,那么t形成的虚树上的每个点都可以被选为s,接下来就是如何一边记录虚树信息,一边计数t,一边计数s,dpi表示以i为根的总方案,但是不好转移,可能会出现实际不以i为根但是对以后有用的信息。考虑记录gi表示从i开始一直向上延申,且i必定不为根的所有方案,分圆点方点讨论即可转移。

dp套dp

首先解释一下我对自动机的理解,相当于给你一个东西,按顺序在一个图上跑,每次移动的时候根据当前的状态决定向哪里移动。p4590,考虑造自动机,所有没法很好的表示的东西都放到自动机上,用自动机的转移表示状态的转移。我们不能很好的表示LCS这一东西,那么我们造个自动机,自动机的节点是一个四元组\((i,j,k,l)\)表示判断完了第一个串前i-1个东西,第二个串前j个东西,当前第i个东西为k,已经匹配的长度为l,自动机的连边用dp来决策,因为我们已经知道所有的状态,那么我们肯定也能知道最优该转移到哪里,所以自动机上转移唯一。我们感性验证一下,如果给你一个串,让你在自动机上跑,跑到最后是可以根据当前节点判断出lcs长度的。那么就可以设\(dp_{i,j,k}\)表示当前长度为i,在自动机的j节点上,NOI的匹配情况为k的方案。接下来只需要最小化DFA就可以了。

最大权闭合子图

含义 选了一个点,后面的全选
建图 S向正点权连边,值为wi,负点权向T连边,值为-wi,原图中的边为无穷,那么答案为正点权和-最小割。

posted @ 2024-06-18 18:04  ciuim  阅读(20)  评论(0)    收藏  举报