一个套路题...但还是得写一下这个套路避免以后忘了

题目中的运算$f(i,j)=(i|j)\text^i$对单位二进制满足$f(0,0)=f(1,0)=f(1,1)=1,f(0,1)=0$

先考虑求正变换,即是求$b_i=\sum\limits_{j=0}^{n-1}\left[2|\text{bit}(f(i,j))\right]a_j$

用类似FWT的过程求$b$

假设我们已经对$l\leq i\leq mid$求出$b_i=\sum\limits_{j=l}^{mid}[2|\text{bit}(f(i,j))]a_j$,已经对$mid+1\leq i\leq r$求出$b_i=\sum\limits_{j=mid+1}^r[2|\text{bit}(f(i,j))]a_j$,现在我们想对$l\leq i\leq r$求$b_i=\sum\limits_{j=l}^r[2|\text{bit}(f(i,j))]a_j$

①对$l\leq i\leq mid$,$\sum\limits_{j=mid+1}^r[2|\text{bit}(f(i,j))]a_j=\sum\limits_{j=mid+1}^ra_j-b_{i+\frac{len}2}$(因为$b_{i+\frac{len}2}$的最高位是$f(1,1)=1$,我们要求的东西的最高位是$f(0,1)=0$,所以$\text{bit}(f(i,j))$奇偶性变化)

②对$mid+1\leq i\leq r$,$\sum\limits_{j=l}^{mid}[2|\text{bit}(f(i,j))]=b_{i-\frac{len}2}$(因为$b_{i-\frac{len}2}$的最高位是$f(0,0)=1$,我们要求的东西的最高位是$f(1,0)=1$,所以$\text{bit}(f(i,j))$奇偶性不变)

写成FWT的格式是$\begin{cases}a_{[0]}'=s_{[1]}-a_{[1]}+a_{[0]}\\a_{[1]}'=a_{[1]}+a_{[0]}\end{cases}$,立得逆变换$\begin{cases}a_{[0]}=\frac{a_{[1]}'+a_{[0]}'-s_{[1]}}2\\a_{[1]}=\frac{a_{[1]}'-a_{[0]}'+s_{[1]}}2\end{cases}$

这种类型的题目大部分可以这样推导出来

剩下一个小问题就是求$s_{[1]}$,一般题目中给的这个运算能让你快速求它,比如这道题中$s_{[1]}=b_{r}-b_{mid}$

时间复杂度$O(n\log_2n)$

#include<stdio.h>
typedef long long ll;
#define NUM(x) ('0'<=x&&x<='9')
char c[40000010];
int ns;
inline ll rd(){
	while(!NUM(c[ns]))ns++;
	ll x=0;
	while(NUM(c[ns]))x=(x<<3)+(x<<1)+c[ns++]-'0';
	return x;
}
ll a[1048576];
int n;
void trans(ll*a){
	int i,j,k;
	ll s,u,v;
	for(i=n;i>1;i>>=1){
		for(j=0;j<n;j+=i){
			s=a[j+i-1]-a[j+i/2-1];
			for(k=0;k<i>>1;k++){
				u=a[j+k];
				v=a[i/2+j+k];
				a[j+k]=(u+v-s)/2;
				a[i/2+j+k]=(-u+v+s)/2;
			}
		}
	}
}
int main(){
	c[fread(c,1,40000010,stdin)]=0;
	int i;
	n=rd();
	for(i=0;i<n;i++)a[i]=rd();
	trans(a);
	for(i=0;i<n;i++)printf("%lld ",a[i]);
}

[BZOJ5267]特工的更多相关文章

  1. 2016动作短片《全境封锁:特工起源》HD720P.英语中字

    导演: 德文·格雷厄姆主演: Matt Lynch / Sasha Andreev / Amanda Day类型: 动作 / 短片制片国家/地区: 美国语言: 英语上映日期: 2016-01-19片长 ...

  2. 【图文】雪佛兰Suburban 美国特工标准座驾_新闻中心_易车网

    [图文]雪佛兰Suburban 美国特工标准座驾_新闻中心_易车网 雪佛兰Suburban 美国特工标准座驾

  3. 宇宙探索特工队&scrum

    对scrum的一些理解 Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发.Scrum包括了一系列实践和预定义角色的过程骨架.Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责 ...

  4. 现象级AR营销助力“口碑双十二”,蚂蚁特工在全国数万商户掀起“AR捉四宝”

    领取阅读奖励金 今年双十二,全国人民吃喝玩乐放飞自我,嗨出了新纪元.除了见证你国人民的财力,这个“双十二”还诞生了教科书级的“AR营销”.无论是在口碑商户门口,还是在各大购物广场,都能看到举着手机,正 ...

  5. >>我要做特工系列 之 CSS 3_animation_向右滑出后下滑并停止

    新手入门还没有正式发点啥东西,都是在装潢博客这个家了,到现在为止还是没有装修好..熟悉了这边的发布规范之后会持续在这里记录,给自己留下学习的脚印~ 这正式的第一篇随笔写个使用css3的动画效果. 总感 ...

  6. 【POI】T1 特工 szp

    T1 特工szp [问题描述] Byteotian 中央情报局 (BIA) 雇佣了许多特工. 他们每个人的工作就是监视另一名特工.Byteasar 国王需要进行一次秘密行动,所以他要挑选尽量多的信得过 ...

  7. Asp.Net Mvc自定义控件之树形结构数据生成表格 - WPF特工队内部资料

    最近项目中有一个需求,将树形结构的数据,以表格的形式展示在页面中,下图是最终呈现效果: 源码: @{ Layout = null; } <!DOCTYPE html> <html&g ...

  8. [异常特工]android常见bug跟踪

    前言 对app的线上bug的收集(友盟.云捕等)有时会得到这样的异常堆栈信息:没有一行代码是有关自身程序代码的.这使得对bug的解决无从下手,根据经验,内存不足OOM,Dialog关闭,ListVie ...

  9. WPF报表自定义通用可筛选列头-WPF特工队内部资料

    由于项目需要制作一个可通用的报表多行标题,且可实现各种类型的内容显示,包括文本.输入框.下拉框.多选框等(自定的显示内容可自行扩展),并支持参数绑定转换,效果如下: 源码结构 ColumnItem类: ...

随机推荐

  1. Fiddler抓取HTTPS协议

    HTTPS协议握手过程: 1,客户端明文请求,把自己支持的非对称加密算法(用于使用CA证书公钥加密计算生成协商密钥的随机数per_master).对称加密算法(用于以后使用协商密钥加密传输内容).验证 ...

  2. System V共享内存介绍

    (一)简单概念 共享内存作为一种进程间通信的方式,其相较于其他进程间通信方式而言最大的优点就是数据传输速率快.其内部实现的方式采用了Linux进程地址空间中的mmap文件映射区,将文件内容直接映射到各 ...

  3. linux 命令行远程登录 后台运行命令的方法

    linux 命令行远程登录 后台运行命令的方法 http://blog.csdn.net/isuker/article/details/55061595 Linux 技巧:让进程在后台可靠运行的几种方 ...

  4. spark 环境搭建坑

    spark的新人会有什么坑 spark是一个以java为基础的,以Scala实现的,所以在你在安装指定版本的spark,需要检查你用的是对应spark使用什么版本的scala,可以通过spark-sh ...

  5. [How to]如何自定义plist文件和读取plist文件内容

    1.简介 plist作为IOS的固化文件,就好比java中properties文件,但是在IOS中plist是可读写的. 本文将介绍自定义静态的plist文件. 2.自定义静态plist文件 右击你的 ...

  6. Python——format()/str.format()函数

    格式化输出,除了类似于C语言的格式化输出外,还有str.format()方法,Python内建的format()函数,允许用户将待输出值以参数的形式,调用format()函数,在Python交互式sh ...

  7. Vim常用命令(转)—默写版

    1.光标移动 上: 下: 左: 『字母小写』 右: 上一行行首: 『减号』 下一行行首: 行首: 『数字0』 行尾: 单词词尾或后一个单词词尾: 后一个单词词首: 单词词首或前一个单词词首: 跳转到特 ...

  8. JQuery判断一个元素下面是否有内容或者有某个标签

    网站开发时,我们时常需要把没有内容的标签隐藏或者去掉.在用JQ有两种好的解决办法: 一.判断文本是否为空 var jqObj = $(this);if(jqObj.text().trim()){ // ...

  9. html5重力感应事件之DeviceMotionEvent

    前言 今天主要介绍一下html5重力感应事件之DeviceMotionEvent,之前我的一篇文章http://www.haorooms.com/post/jquery_jGestures, 介绍了第 ...

  10. jenkins构建触发器定时任务Build periodically和Poll SCM【转载】

    转至博客:上海-悠悠 前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行. 一.定时构建语法 * * * * * ( ...