logo

yaohaoyou

节
春节

CP duels记录

2024-11-19 Views Codeforces | 做题记录328字2 min read繁 置顶

CF1368E Ski Accidents

比较神的构造,被对手 10min 秒了。

看到 47\frac47 和 outi≤2out_i\le2,然后就应该想到 47=2220+21+22\frac47=\frac{2^2}{2^0+2^1+2^2},尝试将 nn 划分为 33 个集合。感觉比较结论,所以直接说了。将 nn 划分成 33 个无交且并为全集的集合 A,B,CA,B,C,满足

∀a∈A,{∀u→a,u∈C}\forall a\in A,\{\forall u \rarr a,u\in C\}

∀b∈B,{∃u→b,u∈A},{∃u→b,u∈B}\forall b\in B,\{\exist u \rarr b,u\in A\},\{\not\exist u\rarr b,u\in B\}

∀c∈C,{∃u→c,u∈B}\forall c\in C,\{\exist u \rarr c,u\in B\}

分类讨论一下,不难发现 A,B,CA,B,C 交且并为全集。由于 ∀b∈B,∃a→b\forall b\in B,\exist a \rarr b,∣B∣≤2∣A∣|B|\le2|A|,同理,∣B∣≤2∣C∣|B|\le2|C|,即 4∣A∣≥2∣B∣≥∣C∣4|A|\ge2|B|\ge|C|,∣C∣≤47n|C|\le\frac47n。删除 CC 中的所有点后 AA 的入度都是 00,BB 的出度都是 00,故最多只有 a→ba\rarr b 的边,满足条件。

因为是 DAG,分集合时可以做拓扑排序。复杂度线性。

EOF