首页 > 其他分享 >[数学记录]arc137D Prefix Xors

[数学记录]arc137D Prefix Xors

时间:2022-11-19 15:26:07浏览次数:72  
标签:Xors 前缀 int Prefix 异或 arc137D FWT binom

FWT/高维前缀和入门题。

题意:给定一个数列 \(a\),每次迭代把原数组替代为前缀异或和数组,求经过 \(1-m\) 次操作后 \(a_n\) 的值。\(n \leq 10^6\)。

首先,无论是手推找规律还是生成函数硬推,\(k\) 次后 \(a_i\) 给 \(a_n\) 贡献 \(\binom{n-i+k-1}{k-1}\) 次。

两次异或相互抵消,故 \(a_i\) 对 \(a_n\) 有贡献当且仅当 \(\binom{n-i+k-1}{k-1}\) 是奇数,使用 Lucas 定理,对于每一位,\(n-i+k-1\) 的值都不小于 \(k-1\),即 \(k-1 \cap n-i+k-1 = k-1\),或 \(k-1 \cap n-i=0\)。后式的一边已经与 \(k\) 无关,意义为 \(k-1\) 在全集中的补集含有 \(n-i\) 作为子集。可以看成 \(n\) 维前缀和,复杂度 \(O(n \log n)\)。

挺套路,感觉。但是我不会 \(n\) 维前缀和,现在会了。我也不会 FWT,现在还是不会。

#include <cstdio>
using namespace std;
const int N = 20, M = 1 << N+2;
int u[M], a[M], n, m;
int main(){
    scanf("%d %d", &n, &m);
    for(int i = n-1; i >= 0; i--) scanf("%d", &a[i]), u[i] = a[i];
    for(int i = 0; i <= 20; i++) {
        for(int j = 0; j < 1 << 20; j++) {
            if(j & (1 << i)) u[j] ^= u[j ^ (1 << i)];
        }
    }
    for(int i = 1; i <= m; i++) {
        printf("%d ", u[((1 << 20) - 1) ^ (i - 1)]);
    }
}

标签:Xors,前缀,int,Prefix,异或,arc137D,FWT,binom
From: https://www.cnblogs.com/purplevine/p/16906170.html

相关文章

  • CF487C Prefix Product Sequence
    CF487CPrefixProductSequence一道妙哉的构造题。首先有两点很明显:\(1\)一定在第一个,\(n\)一定在最后一个。除了\(4\)的合数都无解(\(1\)特判)根据题解第......
  • CF1743E FTL(哈希,DP)——关于 xorshift 的哈希冲突
    CF1743EFTL有两把laser枪,一把伤害\(p_0\)两发间隔时间至少\(t_0\),另一把\(p_1,t_1\)。打敌方太空船,血量\(N\)防御值\(s\),如果某个时刻你对太空船打出\(P\)的......
  • 游戏渠道接入问题,quick接入prefix为空
    如果sdk接入时候游戏Application没有继承QuickSdkApplication,那么在登录时候获取到的Userinfo.getUID(),将会默认拼接一个0.导致跟渠道的登录验证不通过输出:0{$uid}......
  • 【XSY3313】异或和(xorsum)(结论)
    先上一个结论。一个长度为\(n\)的\(01\)序列,其每个子序列的异或和的和为\([序列中包含1]2^{n-1}\)。证明:考虑若不存在\(1\),则显然。否则若存在\(1\),随便选一个......
  • Luogu P4868 Preprefix sum
    题目链接:​​传送门​​线段树维护前缀和简单明了修改就修改当然还有更快的树状数组差分的做法*/#include<iostream>#include<cstdio>#include<cstring>#include<cs......
  • JSTL中taglib标签中uri和prefix的使用
    在早期的jsp开发中,是使用java代码来控制逻辑和显示的,但这样会给前端开发人员带来些麻烦并且代码的可读性也会降低。为了解决上述情况,标签库被创造出来了。标签库的目的在于......
  • Prefix Function Queries
    传送门感觉字符串只会hash了。这里提几点易错点:①字符串能不用string就不用。反正这道题因为string的size(不能正常清空)和读入Wa飞了②hash都写双模数。......
  • D. Prefixes and Suffixes
    题意给定两个长度为\(n\)的字符串,\(k\in[1,n]\),你可以把其中一个字符串长度为\(k\)的前缀与另一个字符串长度为\(k\)的后缀交换,问能不能通过若干次操作,使两个字符串完全......
  • leetcode 208. Implement Trie (Prefix Tree) 实现 Trie (前缀树) (中等)
    一、题目大意Trie(发音类似"try")或者说前缀树是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。......
  • Sum of Prefix Scores of Strings
    SumofPrefixScoresofStringsYouaregivenanarray words ofsizeco$n$sistingofnon-emptystrings.Wedefinethescoreofastring word asthenumber......