传送门 orz ymd 考虑构造生成函数:设\(F(x) = \sum\limits_{i=0}^\infty f_ix^i\),其中\(f_i\)表示答案为\(i\)的概率:又设\(G(x) = \sum\limits_{i=0}^\infty g_ix^i\),其中\(g_i\)表示经过了\(i\)步之后还没有结束的概率.那么答案显然是\(F'(1)\). 考虑在还没有结束的序列之后加入一个字符,那么有可能结束也有可能没有结束,即\(F(x) + G(x) = xG(x) + 1\). 两边…
[题解]歌唱王国(概率生成函数+KMP)+伦讲的求方差 生成函数的本质是什么呀!为什么和It-st一样神 设\(f_i\)表示填了\(i\)个时候停下来的概率,\(g_i\)是填了\(i\)个的时候不停下的来的概率,规定\(f_0=g_0=1\) 两个生成函数是 \[ G(x)=\sum g(i)x^i \\ F(x)=\sum f(i)x^i \] 可以得到一些关系: 在后面随意加上一个字符 \[ xG(x)+1=F(x)+G(x) \] 直接强行接上原串: \[ x^LG(x)(\dfrac…
[CTSC2006]歌唱王国 Tags:题解 题意 链接:在空串后不断随机添加字符,直到出现串\(S_i\)为止.求最终串的期望长度.\(\sum |S_i|\le 5*10^6\) 题解 以下内容来自\(YMD\)的2018年集训队论文 很奇怪的生成函数题: 令\(f[i]\)表示串最终长度为\(i\)的概率,\(g[i]\)表示到达长度\(i\)还没有结束的概率.分别对应生成函数\(F(x),G(x)\).最后要求的就是\(F'(1)\)(求导,相当于每个概率都乘上了指数也就是长度,变成了期…
[BZOJ1152]歌唱王国(生成函数,KMP) 题面 BZOJ 洛谷 题解 根据\(YMD\)论文来的QwQ. 首先大家都知道普通型生成函数是\(\displaystyle \sum_{i=0}^{\infty}a_ix^i\),类似的定义概率生成函数\(\displaystyle F(x)=\sum_{i=0}^\infty P(X=i)x^i\).其中\(P(X=i)\)表示\(X\)这个随机变量为\(i\)的概率. 那么我们可以知道几个结论:\(\displaystyle F(1)=\s…
[CTSC2006]歌唱王国Singleland Time Limit: 30 Sec Memory Limit: 162 MB Description 在歌唱王国,所有人的名字都是一个非空的仅包含整数1~n的字符串.王国里生活着一大群咕噜兵,他们靠不停的 歌唱首领--牛人酋长们的名字来获取力量.咕噜兵每一次歌唱过程是这样的:首先,他从整数生成器那儿获得一 个数字,然后花一个时间单位将此数字唱出来,如果他发现某个牛人酋长的名字已经被歌唱出来(即此名字是歌唱 序列的一个连续子串),那么这次歌唱过程…
洛谷题面传送门 PGF 入门好题. 首先介绍一下 PGF 的基本概念.对于随机变量 \(X\),满足 \(X\) 的取值总是非负整数,我们即 \(P(v)\) 表示 \(X=v\) 的概率,那么我们定义 \(X\) 的概率生成函数为 \(F(x)=\sum\limits_{n\ge 0}P(n)x^n\).较一般的生成函数有所不同的是,对于概率生成函数 \(F(1)=1\) 必然成立,因为 \(X\) 取遍所有值的概率之和为 \(1\).此外,\(X\) 的期望 \(E(X)\) 也可表示为 \…
题面 传送门 给定一个长度为\(L\)的序列\(A\).然后每次掷一个标有\(1\)到\(m\)的公平骰子并将其上的数字加入到初始为空的序列\(B\)的末尾,如果序列B中已经出现了给定序列\(A\),即\(A\)是\(B\)的子串,则停止, 求序列\(B\)的期望长度.\(L ≤ 10^5\) 题解 不知道概率生成函数是什么的可以看看这篇文章,题解也在里面了 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a…
传送门 这题\(\mathrm{YMD}\)去年就讲了,然而我今年才做(捂脸) 考虑生成函数,设\(f_i\)表示最终串长为\(i\)的概率,其概率生成函数为\(F(x)=\sum f_ix^i\),设\(g_i\)表示做到长度为\(i\)没结束的概率,其概率生成函数为\(G(x)=\sum g_ix^i\),那我们要求的就是\(F'(1)\) 考虑他们之间的关系,首先如果在一个没有结束的串后接一个字符,那么这个串可能结束也可能没结束,可以得到\(F(x)+G(x)=xG(x)+1\),两边对\…
题解 读错题了,是最后留下一个牛人首长歌颂他,和其他人没有关系,t就相当于数据组数 结论题,具体可看 https://www.zhihu.com/question/59895916/answer/196874145 最后一个求导(1 - z)不拆,最后代入1的时候会消掉,就得出了这个结论 代码 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #inclu…
题目传送门 Desctiption 见题面. Solution 人类智慧... 考虑这样一个赌博游戏,现在有一个猴子,它随机从 \(1\sim n\) 中选一个打出来.现在有若干个赌徒,他们一开始都有 \(\$1\),现在有一个字符串 \(S\),赌徒在第一次押猴子会打 \(S_1\),如果赢了就回收 \(\$ n\) ,如果输了就可以滚他的蛋了.如果赌徒赢了就继续押猴子会打 \(S_2\),如果赢了就回收 \(\$ n^2\) ,否则就可以滚蛋了.以此类推,并且猴子每打一个字都会新加进来一个赌…
看了jcvb的WC2015交流课件.虽然没懂后面的复合逆部分,但生成函数感觉受益良多. 指数生成函数 集合中大小为 i 的对象的权值是 \( a_i \) ,该集合的生成函数是 \( \sum\limits_{i>=0} \frac{a_i}{i!} x^i \) 一个重要式子: \( \sum\limits_{i=0}^{\infty} \frac{A^i}{i!} = e^A \) .其中 A 可以是一个多项式. 对于有标号对象的计数.可以“拼接”,即 “大小为 i 的集合的带标号方案” 与…
正题 题目链接:https://www.luogu.com.cn/problem/P4548 题目大意 \(t\)次询问,给出一个长度为\(m\)的串\(S\)和一个空串\(T\),每次在\(T\)后面随机加入\(1\sim n\)的字符,直到\(T\)中出现\(S\)为止,求期望次数. \(1\leq n\leq 10^5,t\leq 50,1\leq m\leq 10^5\) 解题思路 对于一个随机的数字\(X\),它的概率生成函数是一个形如 \[F(x)=\sum_{i=0}^\infty…
概率生成函数\(g(x)=\sum_{i\geq 0}t_ix^i\),\(t_i\)表示结果为\(i\)的概率 令\(f(x)\)表示i位表示串结束时长度为i的概率,\(G(x)\)表示i位表示串长度为i时不结束的概率 有如下关系 \[①:f(x)+g(x)=1+g(x)x \] 意义:\(f(x)+g(x)\)即为串长达\(i\)位的概率,即\(i-1\)位不结束的概率 定义一个字符串的border为一个既为它前缀又为它后缀的非空串 定义\(b_i\)表示\([[1,2,\cdots,i]\…
题面 概率生成函数 对于菜鸡博主来说好难啊 其一般形式为$F(x)=\sum\limits_{i=0}^∞[x==i]x_i$,第i项的系数表示离散变量x取值为i的概率 一般的两个性质:$F(1)=1,E(x)=F'(1)$ 这里用$F(x)$表示结束时的串长的概率生成函数,$G(x)$表示到长度到达...而串未结束的概率生成函数,字符串长为len,那么有: ①$F(x)+G(x)=x*G(x)+1$,含义是长度达到x的概率:左边就是字面意思,右边$x*G(x)$表示x-1时未结束的概率,然后加…
题面 传送门 题解 不知道概率生成函数是什么的可以看看这篇文章,题解也在里面了 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>I;--i) #define go(u) for(int i=head[u],v=e[i].v;i;i=e[…
题目传送门 分析: 这道题很神仙,我们给出低配版解法和高配版解法2333 低配版: 首先知道这样一个公式...(证明去高配版) 当一个字符串S其中S [ 1 , i ] = S [ n - i + 1 , n ]时,则称S [ 1 , i ]为S的一个border Ans[n]=sigma( S [ 1, i ]为S的border) m ^ i 嗯... 有了这个之后,我们就可以kmp或者hash求解了 但是,hash只能处理取到S的答案,而kmp可以做到处理出所有S前缀的答案 这里就用kmp(…
(可以参考hdu4652,因此推导过程比较省略) 类似的定义$f_{i}$和$g_{i}$,同样去插入$len$个字符,但注意到并不是任意一个位置都可以作为结尾,$i+j$可以作为结尾当且仅当$s[0,j)=s[len-j,j)$ 令两者生成函数分别为$F(x)$和$G(x)$,则有$G(x)=\sum_{i\in S}m^{i}\frac{F(x)}{x^{i}}$,其中$S=\{i|s[0,i)=s[len-i,len)\}$(根据定义$len\in S$),可以通过kmp或哈希求出 答案即…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
图像检索中,对一幅图像编码后的向量的维度是很高.以VLAD为例,基于SIFT特征点,设视觉词汇表的大小为256,那么一幅图像编码后的VLAD向量的长度为$128 \times 256 = 32768 $.通常要对编码后的VLAD向量进行降维,降维后的向量长度应该根据图像库中图像量的大小来,如果只是几百张的小的图像库,那么可以降维到128甚至是64维,在这种情况下降维后的VLAD向量仍然有很好的区分度:但是如果图片库的数量是几千,几万张,如果VLAD降维的维度太低,损失的信息过多,就不能有很好的区…
Logistic回归.传统多层神经网络 1.1 线性回归.线性神经网络.Logistic/Softmax回归 线性回归是用于数据拟合的常规手段,其任务是优化目标函数:$h(\theta )=\theta+\theta_{1}x_{1}+\theta_{2}x_{2}+....\theta_{n}x_{n}$ 线性回归的求解法通常为两种: ①解优化多元一次方程(矩阵)的传统方法,在数值分析里通常被称作”最小二乘法",公式$\theta=(X^{T}X)^{-1}X^{T}Y$ ②迭代法:有一阶导数…
这套题实在是太神仙了..做了我好久...好多题都是去搜题解才会的 TAT. 剩的那道题先咕着,如果省选没有退役就来填吧. 「SDOI2017」龙与地下城 题意 丢 \(Y\) 次骰子,骰子有 \(X\) 面,每一面的概率均等,取值为 \([0, X)\) ,问最后取值在 \([a, b]\) 之间的概率. 一个浮点数,绝对误差不超过 \(0.013579\) 为正确. 数据范围 每组数据有 \(10\) 次询问. \(100\%\) 的数据,\(T \leq 10\),\(2 \leq X \l…
题面 戳这里,题意简单易懂. 题解 首先我们发现,操作是可以不考虑顺序的,因为每次操作会加一个 \(1\) ,每次进位会减少一个 \(1\) ,我们就可以考虑最后 \(1\) 的个数(也就是最后的和),以及成功操作次数,就行了. 然后根据期望的线性性,我们可以从低到高按位考虑贡献. 考虑一个递推:\(f(i, j)\) 表示从后往前第 \(i\) 位总共被改变 \(j\) 次的概率,那么有两种转移: 进位:\(\displaystyle f(i - 1, j) \to f(i, \lfloor…
布隆过滤器简介:https://www.cnblogs.com/Jack47/p/bloom_filter_intro.html 布隆过滤器详解:原文链接:http://www.cnblogs.com/allensun/archive/2011/02/16/1956532.html 布隆过滤器解析:https://www.cnblogs.com/liyulong1982/p/6013002.html 布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提…
觉得有必要在NOI之前开一篇学习内容记录. 至于为什么要取这个标题呢?也许并没有什么特殊的借口吧. 5.23 在LOJ上搬了三道原题给大家考了考,然后大家都在考试就我一个人在划水. SSerxhs 和 Serval 的退役纪念赛 A.幼儿园唱歌题 给一个串\(S\),\(q\)次询问满足是串\(S[l_1,r_1]\)的前缀且是串\(S[l_2,r_2]\)的后缀的最长回文串长度.\(|S|,q\le2\times10^5\) 把串\(S\)反过来接在后面建回文树,然后就是求两个点的公共祖先中深…
生成函数 多项式 形如$\sum_{i=0}^{n}a_i x^i$的代数式称为n阶多项式 核函数 {ai}的核函数为f(x),它的生成函数为sigma(ai*f(i)*x^i) 生成函数的加减 {ai}{bi}的生成函数为A(x),B(x) {ai+/-bi}的生成函数为A(x)+/-B(x) 生成函数的乘法 {ai}{bi}的卷积的生成函数是A(x)B(x) 普通生成函数 $A(x)=\sum a_i x^i$ 指数型生成函数 $A(x)=\sum \frac{a_i x^i}{i!}$ 特…
单位根反演 \[ \frac{1}{k}\sum_{i=0}^{k-1}\omega_k^{in}=[k|n] \] 所以 \[ \begin{equation} \begin{split} \sum_{i=1}^{n}a_i[k|i]&=\frac{1}{k}\sum_{i=1}^{n}a_i\sum_{j=0}^{k-1}\omega_k^{ji}\\ &=\frac{1}{k}\sum_{j=0}^{k-1}\sum_{i=1}^{n}a_i\omega_k^{ji}\\ &…
题目 首先看到这个出现长度至少为\(2\)的回文子串 这就等价于不能出现两个连续且相同的字符 于是我们用概率生成函数来搞 设\(g_i\)表示\(i\)次操作后游戏没有结束的概率,\(f_{i,j}\)表示\(i\)次操作之后出现最后两个字符都是\(j\)的概率,这样的话游戏就结束了 再定义\(f_i=\sum_{j=1}^nf_{i,j}\) 我们要求的东西显然就是\(F'(1)\),即期望长度 那个非常有用的\(g_i=g_{i+1}+f_{i+1}\)还是成立的 于是 \[xG(x)+1=…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强趣味性,所以要找一个同学扔很多很多次硬币,其他同学记录下正反面情况. 用 H 表示正面朝上, 用 T 表示反面朝上,扔很多次硬币后,会得到一个硬币序列.比如 HTT 表示第一次正面朝上,后两次反面朝上…
题目传送门:LOJ #3045. 题意简述 略. 题解 从高斯消元出发好像需要一些集合幂级数的知识,就不从这个角度思考了. 令 \(\displaystyle \dot p = \sum_{i = 1}^{n} p_i\). 我们考虑一个操作序列 \(\{a_1, a_2, \ldots , a_k\}\),其中 \(1 \le a_j \le n\),就表示第 \(i\) 次按下了开关 \(a_j\). 那么按 \(k\) 次后恰好得到这个序列的概率就是 \(\displaystyle \pr…
本文介绍了布隆过滤器的概念及变体,这种描述非常适合代码模拟实现.重点在于标准布隆过滤器和计算布隆过滤器,其他的大都在此基础上优化.文末附上了标准布隆过滤器和计算布隆过滤器的代码实现(Java版和Python版) 本文内容皆来自 <Foundations of Computers Systems Research>一书,自己翻译的,转载请注明出处,不准确的部分请告知,欢迎讨论. 布隆过滤器是什么? 布隆过滤器是一个高效的数据结构,用于集合成员查询,具有非常低的空间复杂度.     标准布隆过滤器…