该文被密码保护。 阅读全文
摘要:
枚举出每个数的权值的质因子。 对每个质因子建树求一遍直径,这样做的复杂度显然均摊后是n logn的,因为每个点最多只会被拆成logn个点。 口胡的,没代码qwq 阅读全文
摘要:
这种题显然不会无缘无故地套上个期望,所以优先考虑期望的线性性。 也就是说,我们可以考虑最后每个质因子的期望值,累加得到答案。 发现我们计算这个东西的时候只关心某个质因子当前的次数,因此,所有的质因子的期望可以用一遍dp求出。 dp[i][j][k]表示经过k轮后,指数从i变成j的概率。 最后统计一下 阅读全文
摘要:
也不是很懂原理,反正就是这么写的。 void insert(int x) { if(!top){s[++top]=x;return;} int LCA=lca(x,s[top]); while(top>1&&dep[s[top-1]]>=dep[LCA])add(s[top],s[top-1],di 阅读全文
摘要:
考虑这个式子的意义。 不妨看做进行了两轮操作,这个式子显然等价于两次操作后得到的序列相同的方案数。 这个东西显然是可以dp的。 随便优化一下就成了O(n^3) 阅读全文
该文被密码保护。 阅读全文
摘要:
转自hwk0518,不胜感谢,侵删。 阅读全文
摘要:
Pro: 从$(0,0)\(出发走到\)(n,m)$ 给定$y=x+l$和$y=x+r$两条直线 要求不能穿过(可以接触)这两条直线 求方案数 \(n,m,l,r<=1e6\) Sol: 参考了这篇blog https://www.cnblogs.com/xzyxzy/p/9812585.html 阅读全文
该文被密码保护。 阅读全文
摘要:
首先只有询问的话就是个WC的题,线性基+生成树搞一搞就行。 进一步,考虑如果修改操作只有加边怎么做。 好像也没有什么变化,只不过需要在线地往线性基里插入东西而已。 删边呢? 注意到线性基这个玩意是不支持删除操作的。 对于这种不好删除的的东西有种不错的解决方法,就是线段树分治。 把每个操作劈成logn 阅读全文