首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【51Nod1773】A国的贸易 FWT+快速幂
】的更多相关文章
【51Nod1773】A国的贸易 FWT+快速幂
题目描述 给出一个长度为 $2^n$ 的序列,编号从0开始.每次操作后,如果 $i$ 与 $j$ 的二进制表示只差一位则第 $i$ 个数会加上操作前的第 $j$ 个数.求 $t$ 次操作后序列中的每个数是多少. 输入 第一行两个正整数 n , t,意义如题. 第二行 2^n 个非负整数,第 i 个数表示编号为 i-1 的城市的初始货物存储量.n<=20 t<=10^9 输出 输出一行 2^n 个非负整数. 第 i 个数表示过了 t 天后,编号为 i-1 的城市上的货物数量对 1e9+7 取模…
51nod1773 A国的贸易
基准时间限制:2 秒 空间限制:524288 KB 分值: 40 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 ca…
【bzoj4589】Hard Nim FWT+快速幂
题目大意:给你$n$个不大于$m$的质数,求有多少种方案,使得这$n$个数的异或和为$0$.其中,$n≤10^9,m≤10^5$. 考虑正常地dp,我们用$f[i][j]$表示前$i$个数的异或和为$j$的方案数. 我们构造一个数组$g$,若i为不大于$m$的质数,则$g[i]=1$,否则为$0$. 那么显然,$f[i][j]=\sum f[i-1][k]\times g[j \oplus k]$. 其中$j \oplus k$表示$j$和$k$的按位异或. 然后我们不难发现,$f[i]为f[…
BZOJ4589: Hard Nim(FWT 快速幂)
题意 题目链接 Sol 神仙题Orzzzz 题目可以转化为从\(\leqslant M\)的质数中选出\(N\)个\(xor\)和为\(0\)的方案数 这样就好做多了 设\(f(x) = [x \text{是质数}]\) \(n\)次异或FWT即可 快速幂优化一下,中间不用IFWT,最后转一次就行(然而并不知道为什么) 哪位大佬教教我这题的DP怎么写呀qwqqqq 死过不过去样例.. #include<bits/stdc++.h> using namespace std; const int…
bzoj 4589: Hard Nim【线性筛+FWT+快速幂】
T了两次之后我突然意识到转成fwt形式之后,直接快速幂每次乘一下最后再逆回来即可,并不需要没此次都正反转化一次-- 就是根据nim的性质,先手必输是所有堆个数异或和为0,也就变成了一个裸的板子 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=500005,mod=1e9+7,inv2=500000004; int n,m,q[N],tot,bt,…
51Nod1773 A国的贸易 多项式 FWT
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1773.html 题目传送门 - 51Nod1773 题意 给定一个长度为 $2^n$ 的序列,第 $i$ 项为 $f_{i-1}$ . 现在让你做 $T$ 次这样的运算:($i\in[0,2^n)$) $$f^{\prime}_i=f_i+\sum_{j=0}^{n-1} f_{i\ {\rm XOR} \ 2^j}$$ 输出最终的 $f$ 序列. 题解 构造转移多项式 $g$ .使得 $g_0=…
BZOJ4589 Hard Nim FWT 快速幂 博弈
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4589.html 题目传送门 - BZOJ4589 题意 有 $n$ 堆石子,每一堆石子的取值为 $2$ ~ $m$ 之间的素数. 问在所有不同的取值中,先手必败的方案总数. 答案对 $10^9+7$ 取模. $n\leq 10^9,m\leq 50000$ 题解 第一次写 FWT . 感觉 FWT 比 FFT 简单多了. 下面进入正题. 首先,我们再回顾一下 Nim游戏 中先手必败的情况:所有数的异…
【51Nod1773】A国的贸易 解题报告
[51Nod1773]A国的贸易 Description 给出一个长度为 \(2^n\) 的序列,编号从\(0\)开始.每次操作后,如果 \(i\) 与 \(j\) 的二进制表示只差一位则第 \(i\) 个数会加上操作前的第 \(j\) 个数.求 \(t\) 次操作后序列中的每个数是多少. Input 第一行两个正整数 \(n\) ,\(t\),意义如题. 第二行 \(2^n\) 个非负整数,第 \(i\) 个数表示编号为 \(i-1\) 的城市的初始货物存储量. \(n<=20 \ t<=1…
BZOJ 4589 Hard Nim(FWT+博弈论+快速幂)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4589 [题目大意] 有n堆石子,每堆都是m以内的质数,请问后手必胜的局面有几种 [题解] 后手必胜,则sg为0,那么就是求n个m以内的数xor为0的情况有几种, 首先筛出素数,保存素数的个数数组,利用FWT计算c[i^j]=a[i]*b[j], 计算n次的结果逆向变化回来就是最终的sg个数数组, 在计算n次c[i]=a[i]*b[i]的过程中,等价于计算c[i]=a[i]^n, 这里…
#1560 : H国的身份证号码II(dp+矩阵快速幂)
#1560 : H国的身份证号码II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0).此外,由于防伪需要,一个N位正整数是合法的身份证号码当且仅当每位数字都小于等于K,并且任意相邻两位数字的乘积也小于等于K. 例如对于K=5, 101.211.210等都是合法的号码,而106.123.421等都是非法的号码. 给定一个正整数N以及K,H国总统想知道一共有多少个合法的号码可用. 输入 两个整数N和K. 对于30%的数…