考试总结 模拟57

考前被奶了,然后没什么感觉,很冷静的水完T1,本来一直以为这会是套水题,然后才发现T2T3不可做,心态很炸地写完了,T2暴力写错了很多东西,调了好久

T1淼题

T2「状压DP」「边化点」

首先根据n很小可以想到状压

60%算法:

根据拓扑序构造DAG

定义f[s][ss]表示构造出来的DAG中 选出来的点集是s,最新的一层的点集是ss,不同的边集的方案总数

考虑转移,只要保证新加的点集中每个点都被ss中某点所指,也就保证了拓扑序,

而且这样也不会有往回指的边,所以不会有环

转移方程是$f[s|k][ss]=\sum\ \   f[s][ss] \times  \prod  2^{cnt1_i}\times (2^{cnt2_i}-1)$

其中$cnt1_i$是$s \oplus  ss$连向k中i点的边数,$cnt2_i$是ss中连向的边数

你可能感兴趣的:(考试总结 模拟57)