摘要:
期望yy题 有一种做法:枚举每个球滚到哪个坑里,算出其概率,再乘上球到这个坑的距离,把结果相加。 但是你会发现,这样子很难处理,而且有许许多多复杂的情况。 我们换一个角度:对于每一个$i$和$i+1$之间的线段,我们算其被经过的期望次数。 手玩一会儿不难发现有如下结论: 对于一条线段,如果其左边为洞 阅读全文
摘要:
多项式题 链接 首先,我们发现这是一个关于$k$的$m$次多项式和$\binom$相乘,而下降幂与组合数相乘往往会发生神奇的事情,于是考虑下降幂。(不会下降幂的可以先去学学) 那么原多项式变成: \[ f(k)=\sum_{i=0}^{m}b_ik^{\underline{i}} \] 其中$b_i 阅读全文
摘要:
网上看到的一种写法 原博客链接(后面写法会有点不一样) 原问题可以变成: 有n个容量无限大的燃料箱,每次随便放(达到A了仍然可以继续放),当所有燃料都达到B时结束。求燃料箱所放燃料$\ge A$的期望数量。 正确性: 首先,期望只与终态有关。那么,对于一个燃料$\ge A$的箱子,我再往里放一个的话 阅读全文
摘要:
链接 一道简单的推式子题 首先,发现直接计算Ailce获胜的概率需要讨论最后一刀的情况,有点复杂。 正难则反,我们计算Bob获胜的概率。 Bob获胜的条件显然是: 某一轮结束后,Alice血量为0,且Bob血量大于0 然后考虑一轮的情况,发现如果两人都没有命中的话,这轮显然是没用的,于是一轮只有如下 阅读全文
摘要:
树形dp+容斥 记$dp[x][i]$表示以$x$为根的子树中选了$i$对产生了非平局的匹配,的方案数。 那么这显然可以树形背包做一下,再统计一下$x$与其子树内的点匹配即可。 然后,我们记$f(i)=dp[1][i]\cdot(\frac{n}{2} i)!$。那么$f(i)$就表示 至少 有$i 阅读全文
摘要:
对于翻转操作,我们可以理解成每次改第i个位置上的数字。 我们假定一轮操作就是把1 n这n个位置上的数字都决策一遍。 神J胜利的条件为:序列中所有数全都为0或者全都为1 对于神J,其有如下决策: 若神树未把一个0变成1,他把1都变成0; 若神树已经把一个0变成1,对于所有的1他都不动。 显然,每轮神树 阅读全文
摘要:
dp+线段树+数学 10pts:n=1)res+=BIT[i],i =i& i; return res; } void work() { for(int i=1; i 1; build(L,mid,p 1; if(R=mid+1)update_times2(L,R,p 1; if(R=mid+1)r 阅读全文
摘要:
dp+决策单调性 part1.30pts 显然,前30分是很好写的。 $dp[i][j]$表示前i个箱子分成了j个组的最小代价。 复杂度:$O(n^3)$ 代码: c++ namespace p60{ ll dp[MAXN],ans=2e18+7; void work(){ memset(dp,63 阅读全文
摘要:
dp part1.正常地前缀和优化写法 最朴素的版本: $dp[i][j][k]$表示考虑到1 i的情况,最后一个数为j,倒数第二个数为k的方案数。(注意:这里的j,k并不是实际的数值,而表示在前i个数中的 大小排名 ) 直接大力转移就好了。 复杂度:$O(n^4)$ 优化境界1: 容易发现,我们用 阅读全文
摘要:
构造+离线+树状数组 有一道弱化版的题: "【SCOI2010】连续攻击游戏" 上面这道题,二分图最大匹配就可以了。~~当然这题也可以,传说中的$n^3$过1e5~~ 不过,这还是好妙的一道题鸭! part1.大致思路 首先,对于每张牌,在$A[i]$和$B[i]$之间连一条无向边。 那么最后形成的 阅读全文