luogu P2791 幼儿园篮球题】的更多相关文章

传送门 先看我们要求的是什么,要求的期望就是总权值/总方案,总权值可以枚举进球的个数\(i\),然后就应该是\(\sum_{i=0}^{k} \binom{m}{i}\binom{n-m}{k-i}i^l\),总方案是\(\binom{n}{k}\) 直接做显然不行,然后式子里有个\(i^l\),把它拆开,也就是\(\sum_{j=0}^{l} \binom{i}{j}S_{l,j}j!\),代入原式\[\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i}\sum…
洛谷 P2791 幼儿园篮球题 https://www.luogu.org/problemnew/show/P2791 我喜欢唱♂跳♂rap♂篮球 要求的是:\(\sum_{i=0}^kC_m^iC_{n-m}^{k-i}i^L\) 这个\(i^L\)很烦,就把第二类斯特林数的式子套进去 \(\sum_{i=0}^kC_m^iC_{n-m}^{k-i}i^L\) \(\sum_{i=0}^kC_m^iC_{n-m}^{k-i}\sum_{j=0}^iC_{i}^j\begin{Bmatrix}L…
题面传送门 首先写出式子: \[ans=\sum\limits_{i=0}^m\dbinom{m}{i}\dbinom{n-m}{k-i}·i^L \] 看到后面有个幂,我们看它不爽,因此考虑将其拆开,具体来说,根据普通幂转下降幂的式子: \[i^L=\sum\limits_{j=1}^L\begin{Bmatrix}L\\j\end{Bmatrix}\dbinom{i}{j}·j! \] 我们可以得到 \[ans=\sum\limits_{i=0}^m\dbinom{m}{i}\dbinom{…
[洛谷2791]幼儿园篮球题(第二类斯特林数,NTT) 题面 洛谷 题解 对于每一组询问,要求的东西本质上就是: \[\sum_{i=0}^{k}{m\choose i}{n-m\choose k-i}i^L\] 如果没有后面那个部分,就是一个范德蒙恒等式,所以就要把这个\(i^L\)直接拆掉. 然后直接拿第二类斯特林数来拆: \[i^L=\sum_{j=0}^L\begin{Bmatrix}L\\j\end{Bmatrix}{i\choose j}j!\] 于是就把答案拆成了: \[\begi…
[题解]幼儿园篮球题(NTT+范德蒙德卷积+斯特林数) 题目就是要我们求一个式子(听说叫做超几何分布?好牛逼的名字啊) \[ \sum_{i=1}^{S}\dfrac 1 {N \choose n_i}\sum_{j=0}^{k_i}{m_i \choose j}{n_i-m_i\choose k_i- j}j^L \] 实际上$S $很小,所以本质上就是求 \[ \sum_{j=0}^{k_i}{m_i \choose j}{n_i-m_i\choose k_i- j}j^L \] 为了方便我…
你猜猜题怎么出出来的? 显然第\(i\)场的答案为 \[ \frac{1}{\binom{n_i}{m_i}\binom{n_i}{k_i}}\sum_{x=0}^{k_i}\binom{n_i}{m_i}\binom{m_i}{x}\binom{n_i-m_i}{k_i-x}x^L =\frac{1}{\binom{n_i}{k_i}}\sum_{x=0}^{k_i}\binom{m_i}{x}\binom{n_i-m_i}{k_i-x}x^L\\ \] 利用斯特林数进行变换 \[ \sum_…
求 \(\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i}i^L\) \((1\leqslant n,m\leqslant 2\times 10^7,1\leqslant L\leqslant 2\times 10^5)\) 这个式子比较简洁,然后也没啥可推的,所以我们将 \(i^L\) 展开. 那么原式为 \(\sum_{i=0}^{k}\binom{m}{i}\binom{n-m}{k-i}\sum_{j=0}^{i}\binom{i}{j}S(L,j)\t…
题目链接:洛谷 我一开始不知道$N,M$有什么用处,懵逼了一会儿,结果才发现是输入数据范围... $$\begin{aligned}\binom{n}{k}Ans&=\sum_{i=0}^k\binom{m}{i}\binom{n-m}{k-i}i^L \\&=\sum_{i=0}^k\binom{m}{i}\binom{n-m}{k-i}\sum_{j=0}^Lj!\binom{i}{j}\begin{Bmatrix}L \\ j\end{Bmatrix} \\&=\sum_{j…
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #define MAX 200 #define MAXL 200*200 using namespace std; struct Line{ int v,next; }e[…
原题传送门 这道题实际和GSS4是一样的,只是输入方式有点区别 GSS4传送门 这道题暴力就能过qaq(这里暴力指线段树) 数据比较水 开方修改在线段树中枚举叶节点sqrt 查询区间和线段树基本操作 这就可以ac 下面有两个优化,没在代码中体现 1.加开方的懒标记 2.最大的数很小,只要开方6次就可以变成1 所以线段树中再记录区间最大值 当最大值是1时,就可以不用开方 暴力的代码 #include <bits/stdc++.h> using namespace std; const int M…
二维差分+树状数组. 定义差分数组$d_{i, j} = a_{i, j} + a_{i - 1, j - 1} - a_{i, j - 1} - a_{i - 1, j}$,有$a_{i, j} = \sum_{x = 1}^{i}\sum_{y = 1}^{j}d_{i, j}$. 我们要求$sum(n, m) = \sum_{i = 1}^{n}\sum_{j = 1}^{m}a_{i, j} $, 代入$a_{i, j}$,得$sum(n, m) = \sum_{i = 1}^{n}\s…
这题真是“容易”.呵呵呵. 参考题解:xyz32768 代码 #include<cstdio> #include<map> #include<algorithm> #include<cctype> #define mod 1000000007 using namespace std; map<long long,bool> vis; inline long long read(){ ,f=; char ch=getchar(); while(!i…
\(\\\) \(Description\) 求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模 \(N\in [1,10^8]\) \(\\\) \(Solution\) 一道卡常好题 好吧是我常数太大了 考虑将限制区间内所有数质因数分解,对每一个质因子\(i\)记录下\(t_i\)表示,这个质因子在区间内任意一个数里,出现的最高幂次,那么答案就应该是每个质因子对应的最高幂之积. 质数可以线性筛 注意常数别写丑了 ,考虑如何求每一个质数的最高次幂.考虑…
---恢复内容开始--- 题目描述 一天,szb 在上学的路上遇到了灰太狼. 灰太狼:帮我们做出这道题就放了你. szb:什么题? 灰太狼:求一个能被 [1,n] 内所有数整除的最小数字,并对 100000007 取模. szb:这题太水了,就让我小弟来做好了. 然后你就光荣的接受了这个任务. 输入输出格式 输入格式: 一行一个数 n. 输出格式: 一行一个数 ans. 数据范围 n <= 1e8 题目解析 真是凶残,1e8的数据 题目分析难度不大,很容易想到是求1~n的最小公倍数,但要求效率较…
P4514 上帝造题的七分钟 题目背景 裸体就意味着身体. 题目描述 "第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为(a,b),右下角为(c,d)的一个矩形区域内的全部数字加上一个值的操作. 第三分钟,k说,要能查询,于是便有了求给定矩形区域内的全部数字和的操作. 第四分钟,彩虹喵说,要基于二叉树的数据结构,于是便有了数据范围. 第五分钟,和雪说,要有耐心,于是便有了时间限制. 第六分钟,吃钢琴男说,要省点事,于是便有了保证运…
二分图模板题 我用的是匈牙利 其实最大流也可以做 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #define MAX 200 #define MAXL 200*200 using namespace std; struct Line{ int v,next; }e[…
矩阵乘法 P1306 exbsgs P4195 网络流(割点) P1345 主席树 P3302…
#include<bits/stdc++.h> using namespace std; ,M = ; int next[N]; void getNext(char s[]) //找next数组 { ); //确保调用s中的元素的时候是从s[1]开始而不是s[0],因为next数组从1开头 ,j=;i<=len;i++) { //从第二个元素开始匹配,因为第一个元素一定不存在前缀,j=0是因为next[0]=0 //next数组记录的是到第i位为止前面这段字符串的前缀和后缀的共有部分的长…
BZOJ 4300 先把这堆东西丢到博客里,以后再复习. 首先考虑暴力的$dp$,设$f_i$表示以$i$结尾的满足条件的序列的最长长度,有: $f_i = max(f_j) + 1$    $j < i $ $,$  $ a_j \& a_i \neq 0$ $ans = max(f_i)$    $1 \leq i \leq n$ 这样是$n^2$的. 考虑二进制意义下的按位与,如果要使这个运算的结果不为$0$的话,必须要有一位两个数都是$1$,那么我们可以考虑拆位进行$dp$,设$g_…
因为开根号能使数字减小得非常快 所以开不了几次(6次?)很大的数就会变成1..... 所以我们可以维护区间最大值,若最大值>1,则继续递归子树,暴力修改叶节点,否则直接return (好像也可以维护区间被开方的次数,但我不会...QAQ) #include<cstdio> #include<iostream> #include<cmath> #define int long long #define R register int #define ls (tr<…
题目链接 题目简要:我们需要一个能支持区间内每一个数开方以及区间求和的数据结构. 解题思路:说道区间修改区间查询,第一个想到的当然就是分块线段树.数据范围要用long long.本来我是看到区间这两个字就想着运用一下还不算特别熟的lazy-tag.但是题目是开方嘛.开方不满足结合律,√4+√4≠√8是很显而易见的事情.所以说是不能直接修改sum的.那么只能每个单点修改. 如何单点修改?第一个思考的是for循环一下然后套单点.但是实际上这样时间复杂度会极度的退化,是会超时的.此时我们发现每次单点c…
题目 不难想到把\(S\)的反串\(S^R\)接到\(S\)后面,这样就可以把\(S[l_1,r_1]\)的前缀转化为\(S^R[n-r_1+1,n-l_1+1]\)的后缀 回文树上两节点的lca就是两个前缀的最长公共回文后缀,于是建出回文树来跑个lca就好了 之后这个lca可能太长了,长度超过了\(\min(r_2-l_2+1,r_1-l_1+1)\),于是我们再倍增往上跳一跳使得长度更小一些就好了 注意把两个串拼起来的时候要插两个特殊字符 代码 1#include<bits/stdc++.h…
觉得有必要在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\)反过来接在后面建回文树,然后就是求两个点的公共祖先中深…
题面 中文题目,不解释: BZOJ传送门 Luogu传送门 分析 这题建图是显然的,拆点后iii和i′i'i′连容量为吞吐量的边,根据题目要求,111和nnn的吞吐量看作∞\infty∞. 然后用distdistdist表示到111的最小距离,对于满足dist[v]=dist[u]+w[u,v]dist[v]=dist[u]+w[u,v]dist[v]=dist[u]+w[u,v]的边,u′u'u′和vvv连容量为∞\infty∞的边.最后建一个超级源点和超级汇点,分别与111和n′n'n′连容…
1.白银莲花池 LUOGU 2411 第一种思路:当然我们可以写三个bfs a掉这个题,这写下来一二百行要有了吧: 第二种:我们可以在一个bfs中维护所有的信息,一个方向数组,从起点开始,向八个方向扩展,如果添加的莲花需要少,就更新当前的值,如果添加莲花一样多但所需步数更少,也更新,目标点方案数等于当前点方案数.特别地,如果添加莲花和步数一样多,目标点方案数加上当前点方案数.以上三种情况目标点皆需入队: int add[50][50],bs[50][50],vis[50][50],sx,sy,t…
实在没忍住就去打比赛了然后一耗就是一天 最后Rank19还是挺好的(要不是乐多赛不然炸飞),这是唯一一套在Luogu上号称水题大赛的而实际上真的是水题大赛的比赛 好了我们开始看题 T1 八百标兵奔北坡 首先看到这道题你要先仔细想一想切比雪夫距离是什么 我们更加形象地理解一下就会知道这是一个等腰三角形(算了还是看图吧,对于红色的格子,所有黄色的格子对于它都在北面): 然后仔细看一下就发现每一个点可以设计一个DP的思想(类似于过河卒): \(f_{i,j}=0(if\ (i,j)\ is\ a\ m…
记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目 8.24 Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自下而上,其实按自上而下做也行,只不过最后的答案变成了三者取一最值.(面前.左上.右上)其他与数字三角形无异. #include<cstdio> #include<algorithm> using namespace std; int n,m; ][]; int main() { sca…
luogu 暴力? 暴力! 这个题有点像最短路,所以设\(f_{i,j}\)表示在\(i\)号楼,当前\(doge\)跳跃能力为\(j\)的最短步数,转移要么跳一步到\(f_{i+j,j}\)和\(f_{i-j,j}\),要么换到别的\(doge\),转移到\(f_{i,k}\) 这看似有\(n^2\)的状态,实际上状态数只有\(n\sqrt n\).因为当\(p> \sqrt n\)时,一个\(doge\)只能跳到\(\sqrt n\)个不同的点,这部分为\(m\sqrt n\);当\(p\l…
Luogu P2486 [SDOI2011]染色 题面 题目描述 输入输出格式 输入格式: 输出格式: 对于每个询问操作,输出一行答案. 输入输出样例 输入样例: 6 5 2 2 1 2 1 1 1 2 1 3 2 4 2 5 2 6 Q 3 5 C 2 1 1 Q 3 5 C 5 1 2 Q 3 5 输出样例: 3 1 2 说明: 思路 好久没打树剖了,今天和水星爹爹 \(solo\) 这道题的时候输掉了(你爹爹还是你爹爹) \(qwq\) . 进入正题.早在成都的时候 \(czk\) 巨佬就…
题目大意 给出一个序列 \(h\),支持交换其中的两数,求出每一时刻的逆序对个数. 分析 求逆序对是 \(O(N\log_2N)\) 的,有 \(M\) 个操作,如果暴力求的话时间复杂度就是 \(O(MN\log_2N)\) 虽然数据范围不大,但是还是可能因为评测机浮动而TLE,所以就不要想着折腾这些东西了,还是要用一些正经点的方法去过这种题. 求逆序对的方法大致可以分成两种: 用一些数据结构维护大于某个数的数在这个数之前出现过几次,只需要将这些数一个一个放入就好了,优点很明显,可以计算出每个数…