首页 > 其他分享 >AGC034F RNG and XOR

AGC034F RNG and XOR

时间:2023-07-20 18:36:13浏览次数:27  
标签:... XOR limits AGC034F sum RNG text FWT quad

类似随机游走,令 \(f_i\) 为第一次操作到 \(i\) 的期望操作次数,\(p_i\) 为每次操作数为 \(i\) 个概率,显然有:

\[f_i=\begin{cases}0&i=0\\1+\sum\limits_{j\;\text{xor}\; k\ =\ i}p_jf_k &i\neq 0\end{cases} \]

显然可以高斯消元,不过是 \(O(2^{3n})\) 的,寄飞。

考虑到转移过程中有类似异或卷积的东西,令 \((f*p)_i\) 为 \(\sum\limits_{j\;\text{xor}\;k\ =i\ }f_jp_k\),那么 \(i\neq 0\) 时,\((f*p)_i+1=f_i\)。

考虑 \((f*p)_0\) 的值。由于 \(\sum\limits_ip_i=1\),于是根据 FWT 的线性性:

\[\begin{aligned}\sum\limits_i(f*p)_i&=\sum\limits_{i}f_i\\\sum\limits_{i\neq 0}(f*p)_i+(f*p)_0&=\sum\limits_{i\neq 0}f_i+f_0\\(f*p)_0&=f_0+2^n-1\end{aligned} \]

由于 \(f_0=0\),那么 \((f*p)_0=2^n-1\),所以用括号表示集合幂级数的话:

\[(f_0\quad f_1\quad f_2\quad...\quad f_{2^n-1})*(p_0\quad p_1\quad p_2\quad ...\quad p_{2^n-1})=(f_0+2^n-1\quad f_1-1\quad f_2-1\quad ... \quad f_{2^n-1}-1) \]

接下来就很套路了,由于卷积的每项都带有 \(f_i\),那么给 \(p_0\) 减去 \(1\),相当于给每位减去了 \(f_i\),因为 \(i\;\text{xor}\;0\ =\ i\):

\[(f_0\quad f_1\quad f_2\quad...\quad f_{2^n-1})*(p_0-1\quad p_1\quad p_2\quad ...\quad p_{2^n-1})=(2^n-1\quad -1\quad -1\quad ... \quad -1) \]

这是 \(F*P=F'\) 的形式,那么 \(F=F'*P^{-1}\)。后面两个都已知,FWT 后点值相除就好了……吗?

注意到 \(\text{FWT}(P)_0=\text{FWT}(F')_0=0\),\(\text{FWT}(F)\) 第 \(0\) 位你填个啥?

注意到其他位都是对的,那一位可以看作一个变量,肯定有一个数填 \(c\) 到这一位使得 IFWT 后是对的。那么我们直接对 \(\left(0\quad \dfrac{\text{FWT(F')}_1}{\text{FWT(P)}_1}\quad \dfrac{\text{FWT(F')}_2}{\text{FWT(P)}_2}\quad ...\quad \dfrac{\text{FWT(F')}_{2^n-1}}{\text{FWT(P)}_{2^n-1}}\right)\) 做 IFWT,由于第 \(0\) 位改变,影响的是每一项,而 IFWT 回去的结果是 \(f'(0)\) 而不是 \(f(0)=0\),所以给 \(f'\) 整体减去 \(f'(0)\) 所得就是答案了。

复杂度 \(O(n2^n)\),很好写。

标签:...,XOR,limits,AGC034F,sum,RNG,text,FWT,quad
From: https://www.cnblogs.com/Ender32k/p/17569329.html

相关文章

  • CF1083F The Fair Nut and Amusing Xor
    简要题意:给你两个序列\(a,b\),一次操作可以将\(a\)的某一个长度为\(k\)的子区间全部异或上任意值,\(f(a,b)\)为使得\(a\)和\(b\)相同的最少的操作数量。支持单点修改\(a,b\),并在开头和每次修改后输出\(f(a,b)\)的值。\(n,k,q\le2\times10^5,w\le2^{14}\)。题解......
  • SLF4J 日志框架与 SpirngBoot
    SLF4J是一个相对成熟的日志框架,它基于外观模式(门面模式)实现了插拔式的日志实现替换功能,而且还提供了其他日志框架的迁移方案。迁移方案目的依赖库备注将ApacheCommonsLogging框架打印的日志桥接至SLF4J框架jcl-over-slf4j需要在构建工具中排除jcl的......
  • CF1456E XOR-ranges
    题面传送门好题。首先比较自然的,相当于按照数位DP的方法,将\([l,r]\)剖成\(k\)段,其中每一段都是最高若干位确定,底下若干位任取的形式。这样在\([l,r]\)里面选择相当于在这\(O(k)\)个区间里面选择。然后假设我们依次选择好了,考虑如何计算答案。答案显然是位独立的,对于......
  • 71. mybatis 如何获取插入的id【从零开始学习SpirngBoot】
      【从零开始学习SpirngBoot—常见异常汇总】      在之前的文章已经讲过springboot集成mybatis了,但是忘记说一个很重要的知识点了,那就是获取获取主键id,这篇文章补充下,springboot集成mybatis看之前文章:       其实这个也很简单,主要是使用@Options注解,核心代......
  • AtCoder Beginner Contest 308 G Minimum Xor Pair Query
    洛谷传送门AtCoder传送门考虑没有删除操作怎么做。可以动态维护\(ans\),新加进来一个\(x\),我们计算\(\min\limits_{y\inS}x\oplusy\)。对\(S\)建01Trie,然后从高位往低位按位贪心,在01Trie上优先往与\(x\)这一位相同的方向走,但是前提是它的子树内有数,对于01Trie......
  • 将int数组转为Stirng数组输出
    publicclassStr{publicstaticvoidmain(String[]args){//数组int[]arrNum={1,2,3,4,5,6};Stringresult1=arrayTostring(arrNum);System.out.println(result1);}publicstaticStringarrayTostring(int[]......
  • UVA12716 GCD等于XOR GCD XOR
    UVA12716GCD等于XORGCDXOR一道数学题。 首先,我们可以知道,a-b>=gcd(a,b)=c;其次,a-b<=axorb=c;综上,可得a-b=c,即a-b=axorb.由于范围不大,直接枚举。第一层枚举c(因为c较少),第二层枚举a,(b=a-c) 再判断c是否等于a^b即可。#include<bits/stdc++.h>usingnamespacestd;......
  • AtCoder Beginner Contest 249 G Xor Cards
    洛谷传送门AtCoder传送门好题。套路地,考虑枚举最优解的\(a\)异或和二进制下与\(k\)的\(\text{LCP}\),设在第\(i\)位不同。这样的好处是\(i\)之后的位可以随便选。之后按位贪心确定最优解\(b\)的异或和。考虑之前的答案是\(res\),当前在确定第\(j\)位,如何判断\(r......
  • AtCoder Beginner Contest 223 H Xor Query
    洛谷传送门AtCoder传送门考虑一个无脑做法:线段树维护区间线性基。时间复杂度是\(O(m\logn\log^2V)\),过于优秀以至于无法接受。事实上我们并不需要维护区间线性基,因为不带修。考虑“可持久化线性基”,开\(n\)个线性基,第\(i\)个维护前缀\([1,i]\)的数。并且插入线性......
  • Linux hwrng以及ARM TRNG记录
    关键词:hwrng,/dev/random,/dev/urandom,rngd,rngtest等。  Linuxhwrng驱动比较简单,hwrngcore注册设备提供应用层设备。hwrnddriver提供具体硬件接口,然后注册到hwrngcore中,以及往内核熵池提供随机数。1.Linuxhwrng框架1.1hwrng框架对外接口 hwrng对外提供的API接口包括......