计数题小记

前言

因为是技术题,所以要寄。

[ARC146C] Even XOR

注意到题目要求是是 S 的长度为奇数子集异或和互不相同,并且 S{0,1,2,...,2n1},可得当 |S|>n+1 时,是没有贡献的。
证明:当 |s|=n+k,k2 时若有贡献,则 S 要有 2n+k1 个异或和不同的奇数子集。而由题目得,每个子集的异或和取值范围是 [0,2n1],两者显然矛盾。

fi 为大小为 i 的合法集合个数,则显然有 f0=1,ans=i=0n+1fi

fi 如何转移到 fi+1?考虑剩还有多少种元素,与大小为 i 的子集组合,即 1i+1×fi(2n2i1)fi+1

值得注意的是,集合是无序的,所以每一步转移要乘上 1i+1。时间复杂度 O(n)code

作者:szy-dxf

出处:https://www.cnblogs.com/szy-dxf/p/17650729.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

关于我: I am juruo.

posted @   szy_dxf  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示