题意

题解

从大到小枚举\(l\), 把一个序列从\(2^{l+1}\)分成两个独立的\(2^l\),去除两半的影响。
设去除前的序列为\(b\), 去除后序列为\(b'\)
则有\(b_{2^{l+1}-1}-b_{2^l-1}=\sum^{2^{l+1}-1}_{i=2^l}b_i\)
考虑左边的一个位置\(d\)与右边的位置\(d+2^l\)相对应
考虑一个序列\(s_0\)的第\(i\)位为\(\text{bitcount}((i\ \text{or}\ d)\ \text{xor}\ i)\),\(s_1\)为把\(s_1\)的\(d\)换成\(d+2^l\)的结果
显然两个序列左半部分完全一样,右半部分完全相反
设\(z\)为\(b'\)与\(s_0\)(或\(s_1\))左半部分对应位置乘积之和,\(y_0,y_1\)分别为\(b'\)与\(s_0,s_1\)右半部分对应位置乘积之和
则\(b'_d=z,b'_{d+2^l}=y_1\)
且有方程\(z+y_0=b_d,z+y_1=b_{d+2^l},y_0+y_1=b_{2^{l+1}-1}-b_{2^l-1}\)
解之即可。

时间复杂度\(O(n\log n)\).

代码

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cassert>
#define llong long long
using namespace std;char c[40000010];
int ns;
inline llong read(){while(c[ns]<'0'||c[ns]>'9')ns++;llong x=0;while(c[ns]>='0'&&c[ns]<='9')x=(x<<3)+(x<<1)+c[ns++]-'0';return x;
}const int N = 1<<20;
llong a[N+3];
int n;int main()
{c[fread(c,1,40000010,stdin)]=0; //input optimizationn = read();for(int i=0; i<n; i++) a[i] = read();for(int i=(n>>1); i; i>>=1){for(int j=0; j<n; j+=(i<<1)){llong tmp = a[j+(i<<1)-1]-a[j+i-1];for(int k=0; k<i; k++){llong x = a[j+k],y = a[j+i+k];a[j+k] = (-tmp+x+y)>>1,a[j+i+k] = (tmp-x+y)>>1;}}}for(int i=0; i<n; i++) printf("%lld ",a[i]); puts("");return 0;
}

BZOJ 5267 特工 (类FWT)相关推荐

  1. Sequence II HDU - 5919(主席树)

    Mr. Frog has an integer sequence of length n, which can be denoted as a1,a2,⋯,ana1,a2,⋯,an There are ...

  2. 绝对经典!看好莱坞最青睐哪一款电视?

    现在关于电视品牌的广告可谓铺天盖地,几乎所有的电视企业都宣称自己是行业领先品牌.龙头企业......这无疑让广大的消费者犯了愁:到底哪个商家的电视好啊?让我们来看一下影视界大亨好莱坞最青睐哪一款电视吧 ...

  3. 自己搜集编写的Delphi 通用函数

    { ********************************************************************** } { Currency Common Functio ...

  4. BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2159 是 hydro 的 BZOJ ...

  5. 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数

    出处0.0 用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O( ...

  6. BZOJ 4555 Luogu P4091 [HEOI2016/TJOI2016]求和 (第二类斯特林数)

    题目链接 (lugou) https://www.luogu.org/problem/P4091 (bzoj) https://www.lydsy.com/JudgeOnline/problem.ph ...

  7. CSTC 2001 聪明的学生 BZOJ 2523 递归(类搜索,推理)

    今天我们来看一道比较奇怪的题 这是一道递归的类搜索题 不过思维性特别强 下面是题干 哦 对了 还是一道游戏题 一位教授逻辑学的教授有三名非常善于推理且精于心算的学生A,B和C.有一天,教授给他们三人出 ...

  8. bzoj 4711 小奇挖矿 ——“承诺”类树形dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 对"承诺"有了更深的了解. 向外和向内要区分,所以 f [ i ] ...

  9. bzoj 5093 [Lydsy1711月赛]图的价值——第二类斯特林数

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5093 不要见到组合数就拆! 枚举每个点的度数,则答案为 \( n*\sum\limits_{ ...

最新文章

  1. 直播回顾|大规模点云显示技术
  2. Delphi - 数组 详解
  3. OpenGL材质和光照(转)part1
  4. 使用pdf.js预览实现读取服务器外部文件
  5. 三种banner基础形态
  6. ERROR: source database template1 is being accessed by other users解决方法
  7. 如何解决安卓项目在Android Studio无法打开
  8. 277. Find the Celebrity
  9. 获取指定路径下所有PDF文件的总页数
  10. 我想我是适合独处的人
  11. oracle去除逗号函数,oracle逗号分隔函数
  12. [2018.07.21 T2] 离家出走
  13. 《c语言程序设计》-谭浩强
  14. 云数智驱动数据高速增长,浪潮存储提供EB级容量扩展
  15. 罗切斯特大学计算机科学硕士介绍,罗切斯特大学计算机科学硕士排名第61(2020年TFE Times排名)...
  16. Android app资源监控
  17. linux命令v---vi
  18. 用于说明卷积神经网络(ConvNet)的Python脚本
  19. 清理Maven本地仓库.lastUpdated文件
  20. C# EF框架(一)配置

热门文章

  1. STM32串口学习总结(经典)
  2. P3 计算机硬件的基本组成
  3. 实验三 图的操作与实现
  4. Unity3D:创建对象
  5. 远程仓库与 fetch 命令——Git 学习笔记 20
  6. ubuntu16.04 npm安装
  7. wordpress 独立 php,wordpress怎么把所有文章分类单独在一个页面显示
  8. 以太坊智能合约 Hexagon 存在溢出漏洞
  9. LSTM implementation explained
  10. AndroidLinker与SO加壳技术之上篇