T1是简单贪心
T2是清华集训的一个套路(小Y与恐怖的奴隶主),矩阵快速幂的时候不用矩阵乘矩阵,而是用向量乘矩阵,复杂度就压下来了。
T3目前还没有想到特别靠谱的做法。
但是我现在有一个不太靠谱的做法:
1.子序列是无关顺序的,所以可以开个桶记录每个数出现了多少次。,,原序列就等价于这个桶。
2.因为and值等于0,所以所有数的or值就是他们的和,令f[i]表示当前包含的所有数的or值为i的子序列的个数。每一次在桶上加入一个数,枚举转移的时候,都相当于是枚举了补集的子集,而这个的复杂度根据对称性是等价于枚举子集的子集的,众所周知,枚举一个集合所有的子集的子集的复杂度是 (Theta(3^k)) (k是集合大小)的。在此题中,k是 (lceil log_2{a_i}
ceil=18) 的,具体操作次数为 (3^{18}=387420489) ,在2秒和CCF少爷机的加持下,如果我有 (¥E) 神仙 (frac{1}{998244353}) 的卡常技术也许能过????(滑稽)
奶一口,如果标算是这个玩意儿我就把屏幕 当 场 吃 下 去!
对不起,我真的不想吃屏幕555555555.。。。。