首页 > 其他分享 >CF1603F October 18 2017

CF1603F October 18 2017

时间:2024-01-18 20:44:08浏览次数:46  
标签:10 October 加入 18 线性 CF1603F le 序列 Binomial

q-Binomial 就像 QB,你知道没有它会更糟,但就是不想它存在。

多组询问,给定 \(n, k, x\),求有多少长度为 \(n\) 的序列 \(a\) 满足 \(a_i\in[0, 2^k)\cap\mathbb Z\),且其中不存在非空子序列异或和为 \(x\)。

\(1\le n\le 10^9, 0\le k\le 10^7, \sum k\le 5\times 10^7, 0\le x < 2^{\min\{k, 20\}}\)

假如 \(x = 0\),答案是大小为 \(n\) 且秩为 \(n\) 的序列个数,注意到 \(n \le k\) 必须成立(否则答案为 \(0\)),则容易在 \(\Theta(k)\) 时间内计算。以下假设 \(x \ne 0\)。

显然地,对于原序列的任何一个非空子序列,它的线性基加入 \(x\) 以后秩必须增加 \(1\)。考虑依次加入序列中的数,记 \(f_{i, j}\) 表示 \(i\) 个元素的序列,秩为 \(j\) 且合法的方案数。加入一个数时,要么秩不变要么加 \(1\)。如果秩不变,则必须选择先前线性基可以表示出的 \(2^j\) 个数中的某一个;如果秩加 \(1\),那么不能选择任何可以被先前线性基加入 \(x\) 后表示出的数。注意到 \(x\) 不能被先前的线性基表出,所以这样的方案数就是 \(2^k - 2^{j+1}\)。转移方程是 \(f_{i,j} = 2^{j}f_{i-1,j} + (2^{k} - 2^{j})f_{i-1,j-1}\),且 \(f_{0,0} = 1\)。最后要求的答案是 \(\sum\limits_{j=0}^{\min\{n,k-1\}}f_{n,j}\)。我们可以枚举 \(j\),这样可以预处理出所有第二种转移的系数乘积,然后把这个转移系数变成 \(1\),随后 \(f_{i,j}\) 就变成了 \({n\brack j}_2\),套用 q-Binomial 的公式 \(\frac{[n]_2!}{[j]_2![n-j]_2!}\),递推出 \([n]_2! = [n-1]_2!\cdot(2^n-1)\) 即可。

标签:10,October,加入,18,线性,CF1603F,le,序列,Binomial
From: https://www.cnblogs.com/kyeecccccc/p/17973378

相关文章

  • 2024/1/18学习进度笔记
    今天研究了外包杯的题目。我们做的主要是一个虚拟数字人的项目,这里记录下在windows上配置pytorch3d以及freqencoder,gridencoder,raymarchingshencoder这几个库的过程首先这几个库是用过setup.py进行安装的,也就是pythonsetup.pyinstall安装前电脑里必须要装好了VisualStu......
  • 20240118
    该卷卷啦再摆烂不能要了A.游戏其实我10月份做过这道题自己做了忘了再做还读错30min题容易想到,操作次数之和最后一个不为其它数倍数的数的位置有关那么,先考虑筛法把所有这样的数找出来,设共有\(x\)个然后显然就可以枚举最后一个的位置,然后组合更强的结论为\[\frac{x}{x......
  • 蓝桥杯2018省赛次数差
    x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。 国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)#include<iostre......
  • 1.18闲话
    同桌是弱智火p,天天启动,今天上英语课在哪里开局就是霸体加螺旋丸直接拿到你的先手替身我就飞雷神然后走过去捡标再次拿到先手哎呀我真是太有实力了然后被英语老师D了,鉴定为玩青水玩的推歌不想推太大众的,但是不大众的都想不起来了,只能想好久才想起来几个推歌:得过且过的勇者/洛天依......
  • 【2024.01.18】RSS的部署和使用
    ===在这个信息杂乱的时代,需要RSS的存在来帮助我们整合信息这样子我就可以不用开B站看关注的人的信息,打开博客去看别人的博文,打开什么值得买看最新的榜单而是统统全在一个程序内看完所有的信息完整的RSS需要有RSS阅读源,RSS服务器,RSS阅读器RSS阅读器我选择的是FluentReader,颜......
  • Merge sort【1月18日学习笔记】
    点击查看代码//Mergesort#include<iostream>usingnamespacestd;voidmerge(intL[],intR[],intA[],intnL,intnR){//将两个已排序数组合并填入 inti=0,j=0,k=0;//i,j为未拾取元素索引,k为归并数组索引 while(i<nL&&j<nR){ if(L[i]<R[j]){......
  • GB28181智慧安防视频监控EasyCVR v3.5系统增加录像保存地址的配置
    智慧安防监控EasyCVR视频管理平台能在复杂的网络环境中,将前端设备统一集中接入。在网络传输上,平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的快捷传输,视频流经平台处理后可对外进行多格式的分发,实现多展示终端观看(电脑、大屏、电视墙、手机端等)。国标GB28181协议EasyCVR安......
  • 2024.1.18-每日进度笔记
    今天,我主要尝试了通过摄像头拍照并保存在本地指定文件。 参考:百度文心一言的回复。 <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><title>获取摄像头画面并拍照</title......
  • 1.18学习进度
    1.local模式基本原理   本质:启动一个JVMProcess进程(一个进程里面有多个线程),执行任务task   local模式可以限制模拟spark集群环境的线程数量,即local[N]或local[*]       其中N代表可以使用N个线程,如果不指定N,默认是1个线程       如果是local[*],则代表R......
  • (Python)每日代码||2024.1.18
    m=10a=10print(id(m))print(id(a))'''输出140713874176728140713874176728'''print()a=1b=2c=3d=a+bprint('a(1)\t'+str(id(a)))print('b(2)\t'+str(id(b)))print('c(3)\t'+str(id......