ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.1.18模拟

2022-01-21 18:31:44  阅读:190  来源: 互联网

标签:边界 18 复杂度 times 多项式 操作 越过 模拟 2022.1


So hard !

zzz 怎么挑了套如此困难的题!

小 Y 和恐怖的奴隶主

\(11\) 分的 \(dp\) 不难写出。

记录 \(f[i][a][b][c]\) 为攻击 \(i\) 下,场上有 \(a\) 个一血怪, \(b\) 个两血怪, \(c\) 个三血怪的概率。

期望即对每一层 合法的 \(f[i]\) 求前缀和。

考虑到我们攻击次数实际上并无实际用处, 每次进行的操作都一样,只是重复了 \(10^{18}\) 次。

进而我们可以使用矩阵乘法优化。

好像还是过不去, 利用快速幂的思想优化, 预处理二的整次幂的次方的矩阵, 询问时可以降一个状态的复杂度。

跳跳棋

可怕的建模 !

考虑我们只有三种不同的跳法。

1 \(b\) 越过 \(a\)

2 \(b\) 越过 \(c\)

3 \(a\) 越过 \(b\) 或 \(c\) 越过 \(b\)

由于我们最后求的是相对位置, 发现进行 \(1\) 和 \(2\) 操作的时候边界会扩大, 进行 \(3\) 操作边界会缩小。

在 \(b - a = c - b\) 的时候就无法再进行移动。

因此不妨看作扩大边界为两个儿子, 缩小边界为父亲,这样就将操作一一对应上。

问题转化为两个节点在树上需要几次到达,也就是求树上距离问题。

我们接着发现, 在 \(3\) 操作向里面缩的时候,在允许范围内每次缩的结果是相同的,因此我们可以将相同的操作压缩起来,一次进行若干次向上跳父亲的操作来减小复杂度。

最后 二分到两点深度相同的地方, 在一同向上跳到 \(lca\) 处即可。

Calc

考虑 钦定填的数字递增, $f(n,i) $为前 \(n\) 位用 \(1-i\)这些数字的总价值。

转移为

\[f(n,i)=f(n-1,i-1)\times i+f(n-1,i) \]

乘上阶乘即可。

看起来 \(f(n,i)\) 是关于 \(i\) 的多项式。

假设 \(f(n,i)\) 关于 \(i\) 的 \(g(n)\) 次多项式。

观察到有差分的形式

\[f(n,i)-f(n-1,1)=f(n-1,i-1)\times i \]

不难发现左边是关于 \(i\) 的 \(g(n)-1\) 次多项式,右边是 \(g(n-1)+1\)次多项式

因此

\[g(n)=g(n-1)+2 \]

显然有

\[g(0)=0 \]

因此这就是关于 \(i\) 的 \(2n\) 次多项式。拉格朗日插值即可。

标签:边界,18,复杂度,times,多项式,操作,越过,模拟,2022.1
来源: https://www.cnblogs.com/Shu-Kuang/p/15831356.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有