[51Nod 1773] A国的贸易

题目描述

A国是一个神奇的国家。

这个国家有 2n 个城市,每个城市都有一个独一无二的编号 ,编号范围为0~2n-1。

A国的神奇体现在,他们有着神奇的贸易规则。

当两个城市u,v的编号满足calc(u,v)=1的时候,这两个城市才可以进行贸易(即有一条边相连)。

而calc(u,v)定义为u,v按位异或的结果的二进制表示中数字1的个数。

ex:calc(1,2)=2 ——> 01 xor 10 = 11

calc(100,101)=1 ——> 0110,0100 xor 0110,0101 = 1

calc(233,233)=0 ——> 1110,1001 xor 1110,1001 = 0

每个城市开始时都有不同的货物存储量。

而贸易的规则是:

每过一天,可以交易的城市之间就会交易一次。

在每次交易中,当前城市u中的每个货物都将使所有与当前城市u有贸易关系的城市货物量 +1 。

请问 t 天后,每个城市会有多少货物。

答案可能会很大,所以请对1e9+7取模。

试题分析

多项式乘法一大用处就是利用在快速转移。

只需要像矩阵那样把一维数组的转移关系写出来。

那么对于本题,构造数组B,使得\(B[0]=1,B[2^x]=1\),其中\(B[0]=1\)是自己还可以保留。

然后进行异或卷积即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<algorithm> using namespace std;
#define LL long long inline LL read(){
LL x=0,f=1; char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) x=x*10+c-'0';
return x*f;
}
const LL MAXN = (1LL<<22)+11;
const LL INF = 2147483600;
const LL Mod = 1e9+7;
const LL inv2 = 500000004LL; LL N,T; LL a[MAXN+1],b[MAXN+1];
LL lim; inline void FWT(LL *A,LL type){
//for(LL i=0;i<lim;i++) if(rev[i]>i) swap(A[i],A[rev[i]]);
for(LL mid=1;mid<lim;mid<<=1){
for(LL R=(mid<<1),j=0;j<lim;j+=R){
for(LL k=0;k<mid;k++){
LL x=A[k+j] , y=A[k+j+mid];
if(type==1) A[k+j]=(x+y)%Mod , A[k+j+mid]=(x-y+Mod)%Mod;
else A[k+j]=1LL*(x+y)*inv2%Mod , A[k+j+mid]=1LL*(x-y+Mod)%Mod*inv2%Mod;
}
}
}
} int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
N=read(),T=read(); b[0]=1;
for(LL i=1;i<(1<<N);i<<=1) b[i]=1;
for(LL i=0;i<(1<<N);i++) a[i]=read();
lim=(1<<N);N=(1<<N);
FWT(a,1); FWT(b,1); for(;T;T>>=1){
for(LL i=0;i<lim;i++){
if(T&1) a[i]=1LL*a[i]*b[i]%Mod;
b[i]=1LL*b[i]*b[i]%Mod;
}
} FWT(a,-1);
for(LL i=0;i<N;i++) printf("%lld ",a[i]);
return 0;
}

[51Nod 1773] A国的贸易的更多相关文章

  1. 【51nod】1773 A国的贸易

    题解 FWT板子题 可以发现 \(dp[i][u] = \sum_{i = 0}^{N - 1} dp[i - 1][u xor (2^i)] + dp[i - 1][u]\) 然后如果把异或提出来可 ...

  2. 【51Nod1773】A国的贸易 解题报告

    [51Nod1773]A国的贸易 Description 给出一个长度为 \(2^n\) 的序列,编号从\(0\)开始.每次操作后,如果 \(i\) 与 \(j\) 的二进制表示只差一位则第 \(i\ ...

  3. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  4. 51nod1773 A国的贸易

    基准时间限制:2 秒 空间限制:524288 KB 分值: 40  A国是一个神奇的国家. 这个国家有 2n 个城市,每个城市都有一个独一无二的编号 ,编号范围为0~2n-1. A国的神奇体现在,他们 ...

  5. 51Nod1773 A国的贸易 多项式 FWT

    原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1773.html 题目传送门 - 51Nod1773 题意 给定一个长度为 $2^n$ 的序列,第 $ ...

  6. 【51Nod1773】A国的贸易 FWT+快速幂

    题目描述 给出一个长度为 $2^n$ 的序列,编号从0开始.每次操作后,如果 $i$ 与 $j$ 的二进制表示只差一位则第 $i$ 个数会加上操作前的第 $j$ 个数.求 $t$ 次操作后序列中的每个 ...

  7. NOIP2009最优贸易[spfa变形|tarjan 缩点 DP]

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

  8. 【NOIP2009 T3】 最佳贸易 (双向SPFA)

    C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道 ...

  9. [NOIP2009] 提高组 洛谷P1073 最优贸易

    题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...

随机推荐

  1. GDB调试基础

    GDB调试基础 https://lesca.me/archives/gdb-basic-knowledge.html GDB笔记(二):条件断点.命令列表.监视点 https://lesca.me/a ...

  2. 在jsp页面中设置了远程验证,在初始化时必须预先调用一次。

    参考链接:http://code.taobao.org/p/sztaotao/diff/5/trunk/code/src/main/webapp/webpage/modules/sys/roleFor ...

  3. Python基础:内置常量

    本文根据Python 3.6.5的官文Built-in Constants编写,官文比较短,大家可以直接看原文. 有一些存在于 内置名称空间(the built-in namespace) 的常量,如 ...

  4. Owin WebApi版本控制

    public class WebApiControllerSelector : IHttpControllerSelector { private const string NamespaceKey ...

  5. python基础--shutil模块

    shutil模块提供了大量的文件的高级操作. 特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作.对单个文件的操作也可参见os模块. 注意 即便是更高级别的文件复制函数(shutil.cop ...

  6. git —— 远程仓库(创建)

    一.SSH设置 1.创建SSH Key 在用户主目录下,看看有没有.ssh目录, 如果有,再看看这个目录下 有没有id_rsa和id_rsa.pub这两个文件, 如果已经有了,可直接 跳到下一步. 如 ...

  7. 洛谷P2015二叉苹果树

    传送门啦 树形 $ dp $ 入门题,学树形 $ dp $ 的话,可以考虑先做这个题. $ f[i][j] $ 表示在 $ i $ 这棵子树中选 $ j $ 个苹果的最大价值. include #in ...

  8. 配置sql server 2000以允许远程访问

    配置sql server 2000以允许远程访问适合故障:1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.net ...

  9. 20165333 实验二 Java面向对象程序设计

    姓名:陈国超 学号:20165333 班级:1653 实验课程:JAVA程序设计 实验名称:Java面向对象程序设计 实验时间:2018.4.14 指导老师:娄家鹏 实验内容及步骤 (一) " ...

  10. WordPress解决优酷、土豆视频移动端观看问题并自适应

    转:https://www.xhsay.com/wp-iframe-handler-youku-tudou.html 虽然WordPress能直接插入优酷.土豆的视频但是无法在移动端观看,于是乎笨笨就 ...