「考试」 Or
不得不说是一道多项式神题了。
虽然说颓代码颓的很厉害不过最终A掉了。
好好讲一讲这道题。
涉及的知识点是:高阶导数,NTT,指数型母函数,泰勒公式,以及意志力和数学推导能力。
那就开始了。
一个测试点一个测试点来。
首先注意到$b[i]=lim_{i=1}^{i<=n}(|=a[i])$
1.$n,k<=4$ 直接爆搜。$O(2^{nk})$
2.$n,k<=10$考虑状压dp。
设$dp[i][s]$为$a$的$i$项前缀或和。
那么有转移$dp[i+1][s|t]+=dp[i][s]*[(s|t)!=s]$
这样是$O(n4^{k})$
3.$n,k<=300$。
首先优化状压dp,我们其实并不关心状压dp中状态的1是那些1,我们只关心有几个1。
那么得到$dp[i][j]$前$i$位的$a$或和中有$j$个1,且清楚是哪些1的方案数。
$dp[i][j]=\sum\limits_{k=0}^{j-1}dp[i-1][k]2^kC_{K-k}^{j-k}$
复杂度是$O(nk^2)$
4.59分
优化上述$dp$
其实可以看到卷积的影子吧。
设$g[i][j]$前$i$位的$a$或和中有$j$个1,不清楚是那些1的方案数。
$g[i][j]=\sum\limits_{k=0}^{j-1}g[i-1][k]2^kC_j^{j-k}$
那么$dp[i][j]=C_K^jg[i][j]$
可以看出来g是一个卷积的形式了。
那么复杂度$O(nklogk)$
5.AC
优化上述dp。
改变g的枚举方式。
$g[i][j]=\sum\limits_{k=1}^{j}g[i-1][j-k]2^{j-k}C_{j}^{k}$
展开组合数。
$g[i][j]=\sum\limits_{k=1}^{j}g[i-1][j-k]2^{j-k}\frac{j!}{k!(j-k)!}$
那么也就是说
$\frac{g[i][j]}{j!}=\frac{\sum\limits_{k=1}^{j-1}g[i-1][j-k]2^{j-k}}{(j-k)!}\frac{1}{k!}$
可以看出指数型母函数的样子了。
生成函数$G(x)=\sum\limits_{k=1}^{j-1}\frac{g[i][j]}{j!}$
引入泰勒公式。
$+\infty$为正无穷。
对于任何一个函数$f$
$f(x)=\sum\limits_{i=0}^{+\infty}\frac{f^{(i)}(x_0)(x-x_0)^i}{i!}$
证明:
对$f^{(m)}(x_0)(x-x_0)^m$求$m$阶导。
首先$x^n$的导数为$nx^{n-1}$
那么
1.$mf^{(m)}(x_0)(x-x_0)^{m-1}$
2.$m(m-1)f^{(m)}(x_0)(x-x_0)^{m-2}$
......
m.$m!f^{(m)}(x_0)$
在往后都是0了,$m!f(x_0)$是常数。
那么其实$f^{(m)}(x_0)=m!f(x_0)$因为其他项带$(x-x_0)$,所以都是0。
除掉$m!$
$f(x)=\sum\limits_{i=0}^{+\infty}\frac{f^{(i)}(x_0)(x-x_0)^i}{i!}$
得到泰勒公式的结论了。
证毕。
第二个引理$e^x=\sum\limits_{i=0}^{+\infty}\frac{x^i}{i!}$
证明:
首先$e^x$的导数仍然是$e^x$
$e^x=\sum\limits_{i=0}^{+\infty}\frac{f^{(i)}(x_0)(x-x_0)^i}{i!}$
设$\frac{f^{(i)}(x_0)}{i!}=a_i$
$e^x=\sum\limits_{i=0}^{+\infty}\frac{a_i(x-x_0)^i}{i!}$
两侧取导。
$e^x=0+\sum\limits_{i=1}^{+\infty}ia_{i-1}(x-x_0)^{i-1}$
$a_0=a_1$
$a_1=2a_2$
$a_2=3a_3$
...
$a_{n-1}=na_n$
那么解得$a_i=\frac{a_0}{i!}$
回代。
$e^x=a_0\sum\limits_{i=0}^{+\infty}\frac{x^i}{i!}$
当$x=0$时
$e^x=1=a_0\sum\limits_{i=0}^{+\infty}\frac{x^i}{i!}$
$a_0=1$
$e^x=\sum\limits_{i=0}^{+\infty}\frac{x^i}{i!}$
证毕。
推推式子得到了$G_i(x)=G_{i-1}(2x)*(e^x-1)$是卷积。
用$(G(x))[x^i]$代表多项式$G(x)$在$x^i$处的系数。
代入$\frac{g[i][j]}{j!}=\frac{\sum\limits_{k=1}^{j}g[i-1][j-k]2^{j-k}}{(j-k)!}\frac{1}{k!}$
那么也就等价于。
$(G_i(x))[x^j]=\sum\limits_{k=1}^{j}(G_{i-1}(x))[x^{j-k}]2^{j-k}((e^x)[x^k])$
解释一下。
$G(2x)$在$[x^k]$的系数是$\frac{g[i-1][k]}{k!}2^k$
$e^x$在$[x^k]$的系数是$\frac{1}{k!}$
好那么有这个式子了。
继续。
$G_0(x)=1$
回代得到。
$G_n(x)=\prod\limits_{i=0}^{n-1}(e^{2^ix}-1)$
这个形式可以用类似快速幂的方式优化。
快速幂我不知道怎么想出来的只知道是对的。
那么也就是说可以在$O(nlog^2n)$时间内解决。
常数巨大。
「考试」 Or的更多相关文章
- 「考试」CSP-S 2020
乱扯 爆炸的过程是这样的 写了\(2.5h\)的\(T1\)过不去大样例,自闭了 决定调\(T2\)然后过了样例但事实上写的完全是假的 这个时候突然\(T1\)灵光一闪就没再看\(T2\)了 然后就一 ...
- 「考试」noip模拟9,11,13
9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有 ...
- 「考试」$5T$
啊因为最近题实在是好啊,只能四五篇四五篇写了. T1. 括号序列的确简单. 当我们维护左右$cnt$后. 到一个左括号的地方的话. 答案就是:$$\sum\limits_{i=1}^{min(lc,r ...
- 「考试」小P的生成树
考场上想到一半正解,没想到随机化,不然也许能够$A$掉. 题目所说的其实就是向量加法,求模长最长的向量生成树. 我们考虑对于两个向量,必然在平行边形对角线方向上,他们的投影和是最大的,长度就是对角线长 ...
- 「考试」num (破800纪念)
是第800题啦. 怎么说,$rvalue$学长写的已经挺好的了,我在这里做一点补充,写一点理解. 但是这道题真的值得写一下题解,毕竟一百行也算是数论工程题了. 定义函数 $Fp(k,n)$为$n$中$ ...
- 「考试」weight
正解是树剖. 首先Kru求最小生成树. 然后分别考虑树边和非树边的答案. 首先是非树边,非树边链接的两个点在MST上能够构成一条链. 这条链上最大的那条边-1就是这条边的答案. 为什么. 模拟Kru的 ...
- 「考试」联赛模拟36-39,noip晚间小测2-3
36.1 party(CF623D) 很是鸡贼的一道题 首先要明确一点,抓人是有策略,而不是随机的,可以认为等同于按一个给定的顺序猜人,那么这时猜中的概率就只是抓住这个人的概率了 对于每一次猜测,因为 ...
- 「CSP-S」2019年第一届Day1游记+题解
「CSP-S」2019年第一届Day1游记+题解 Day 1 7:30 A.M. 8:10 A.M. 8:30 A.M. T1 格雷码 题目 考场经历+思考(正解) 8:50 A.M. T2 括号树 ...
- 「CSP」第一届提高组考后总结
「CSP」第一届提高组考后总结 问题分析+反思 成绩 心态 考前心态 考时心态 考后心态 方法 心灵鸡汤... 在学习了三年之后,我们信竞迎来了初中最后一次大考,也是第一次 CSPCSPCSP 考试. ...
随机推荐
- BZOJ [Scoi2015]情报传递
Description 奈特公司是一个巨大的情报公司,它有着庞大的情报网络.情报网络中共有n名情报员.每名情报员口J-能有 若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线.奈 ...
- Ubuntu 16.04安装snort含问题解决
源码方式安装 wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz tar xvzf daq-2.0.6.tar.gz cd daq- ...
- 【包教包会】Chrome拓展开发实践
首发于微信公众号<前端成长记>,写于 2019.10.18 导读 有句老话说的好,好记性不如烂笔头.人生中,总有那么些东西你愿去执笔写下. 本文旨在把整个开发的过程和遇到的问题及解决方案记 ...
- SecureCRT连接虚拟机下的CentOS7
1.首先在VMWare下配置CentOS为桥接模式: 2.查看本机ip: 3.ip addr查看centos的mac地址: 4.在root权限下修改/etc/sysconfig/network-scr ...
- 1002. 写出这个数 (20)-PAT乙级真题
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字.输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每一 ...
- 最简单的ArcGIS Engine应用程序(下)
在中篇我们讲到使用OpenFileDialog控件可以添加shp文件.(最简单的ArcGIS Engine应用程序(中)) 添加lyr文件的操作也是大同小异的. using System; using ...
- Python_函数传参
关于函数中传递参数的相关知识 其中 万能参数 第一次听说 但感觉用处不大 后面用到再详细整理
- Oracle11g安装与基本使用
目录 安装 修改用户密码 配置文件修改 使用PLSQL连接Oracle数据库 如何执行SQL 语句 本教程基于oracle11g和PLSQL进行 下载资源见百度网盘链接:https://pan.bai ...
- C#刷遍Leetcode面试题系列连载(5):No.593 - 有效的正方形
上一篇 LeetCode 面试题中,我们分析了一道难度为 Easy 的数学题 - 自除数,提供了两种方法.今天我们来分析一道难度为 Medium 的面试题. 今天要给大家分析的面试题是 LeetCod ...
- Mybaits 源码解析 (一)----- 搭建一个mybatis框架(MyBatis HelloWorld)
源码分析之前先搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写.(老鸟可以跳过这篇) 开发环境的准备 创建mave ...