[数学记录]arc137D Prefix Xors
FWT/高维前缀和入门题。
题意:给定一个数列 ,每次迭代把原数组替代为前缀异或和数组,求经过 次操作后 的值。。
首先,无论是手推找规律还是生成函数硬推, 次后 给 贡献 次。
两次异或相互抵消,故 对 有贡献当且仅当 是奇数,使用 Lucas 定理,对于每一位, 的值都不小于 ,即 ,或 。后式的一边已经与 无关,意义为 在全集中的补集含有 作为子集。可以看成 维前缀和,复杂度 。
挺套路,感觉。但是我不会 维前缀和,现在会了。我也不会 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)]);
}
}
作者:purplevine
出处:https://www.cnblogs.com/purplevine/p/16906170.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
本文来自博客园,作者:purplevine,转载请注明原文链接:https://www.cnblogs.com/purplevine/p/16906170.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)