LOJ2351「JOI 2018 Final」毒蛇越狱 容斥+子集卷积

该博客详细介绍了LOJ2351问题的解题思路,通过容斥原理与子集卷积的方法解决毒蛇越狱问题。由于题目中n的限制,可以通过比较cnt0, cnt1, cnt?的大小来确定最佳策略,从而在O(n×2^n+2⌊3n⌋×q)的时间复杂度内求解。" 119513074,1136034,Vue教程:webpack配置实现ES6到ES5转换,"['前端开发', 'Vue', 'Webpack', 'Babel']

题面

题目传送门

解法

  • 暴力显然是枚举 ? ? ?到底填什么,那么单次询问的复杂度为 O ( 2 c n t ? ) O(2^{cnt_?}) O(2cnt?),并没有什么可以优化的地方。
  • 不妨考虑一个容斥,将 ? ? ?全部看作是 1 1 1,然后求子集的权值和。但是我们会将某些位置强制为 1 1 1却填成 0 0 0的数算入答案,那么我们还要减去这部分的答案。容斥的复杂度为 O ( 2 c n t 1 ) O(2^{cnt_1}) O(2cnt1)
  • 可以发现,因为 n n n只到 20 20 20,所以 min ⁡ ( c n t 0 , c n t 1 , c n t ? ) \min(cnt_0,cnt_1,cnt_?) min(cnt0,c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值