首页 > 其他分享 >杂题#1

杂题#1

时间:2022-11-02 23:01:45浏览次数:39  
标签:排列 cdot 逆元 ans 错排 杂题 预处理

9~10月份。

主要清理一下自己的任务计划。

P4071 排列计数

组合数问题。求有 \(m\) 个正好在自己的位置上的 \(n\) 阶排列数。

根据zh讲的数学思路,不好解决的问题考虑反面。于是就变成了:在 \(n\) 个数中选出 \(n - m\) 个数使它们错排,而剩下的都填自己,唯一确定,所以可以直接不考虑。

设 \(D(n)\) 表示 \(1\) ~ \(n\) 错排的方案数,那么答案就是 \(C^m_n \cdot D(n-m)\)。

\(C^m_n = \frac{n!}{(n-m)!\cdot m!}\) 可以线性递推初始化阶乘,但是有除法还需要取模,这就相当于乘上除数的乘法逆元(对于模数而言)。

逆元的定义:定义 \(a\) 在模 \(P\) 意义下的乘法逆元是 \(x\),其中 $ ax \equiv 1(mod$ \(P)\)。

而这个题我用的最简单的求逆元方法:费马小定理,不解释,得到 \(x = a^{p - 2}\)。

接着,怎么求错排数?

这样考虑。目前有一个 \(1\) ~ \(i-1\) 的排列,接着加入一个数 \(i\)。

·\(1\) ~ \(i-1\) 为错排,那么拿 \(i\) 与任意一个 \(1\) ~ \(i-1\) 的交换,都是一种新的 \(1\) ~ \(i\) 错排。对于这种特定的 \(1\) ~ \(i-1\) 的排列,共有 \(i-1\) 种新的排列可以这样生成。

·\(1\) ~ \(i-1\) 有一个 \(k\) 在自己的位置上,其他的 \(i - 2\) 个都是错排,那么将 \(i\) 和 \(k\) 交换位置,又是一种新的 \(1\) ~ \(i\) 错排。对于这种特定的 \(1\) ~ \(i-1\) 的排列,共有 \(i-1\) 种新的排列可以这样生成。

不难证明这样可以做到不重不漏,其他新的构造都会有重或者不满足,所以可以推出 \(D(n) = (D(n-1) + D(n-2)) \cdot (i-1)\)。

最后,我们将这题先 \(O(n)\) 预处理求阶乘和错排,再对于每对 \(n\) 和 \(m\) 都求出 \(n! \cdot {((n-m)! \cdot m!)}^{P-2} \cdot D(n-m)\) 再取模即可。

P3396 哈希冲突

根号分治。

有一种 \(O(n^2)\) 预处理,\(O(1)\) 修改的做法。维护 \(ans_{p,k}\) 表示所有模 \(p\) 余 \(k\) 的 \(i\) 的 \(\Sigma v_i\),然后在输入 \(v_i\) 时,对于每一个 \(p\),\(ans_{p,i\%p} += v_i\)。

于是不难想到,对于 \([1,\sqrt n]\) 的 \(p\),\(i\) 的数量会多一些,于是我们对于这个范围的 \(p\) 进行预处理式求解,其他的直接暴力求和。当然只需要在修改的时候循环模数 \(p\) 修改 \(ans\) 值。

这样就可以 \(O((m+n)\cdot \sqrt n)\) 解决,妙哉。

根号分治准备之后找题练练。

标签:排列,cdot,逆元,ans,错排,杂题,预处理
From: https://www.cnblogs.com/Ziqqurat/p/16852863.html

相关文章

  • 11月杂题
    时间过得好快......1.FunGame首先我们考虑一个链怎么做。显然有个想法是一个一个接字符串,每次接的时候算一下最长的重叠位置(使用kmp)即可。但这样在\(a\)完全包含......
  • AGC019 D~F【杂题】
    D.ShiftandFlip给定两个\(01\)串\(A\)和\(B\),每次操作可以将\(A\)循环左移或右移一位,或选择一个\(B_i=1\)的位置将\(A_i\)取反,求使\(A\)和\(B\)相等......
  • AGC018 C~F【杂题】
    C.Coins有\(x+y+z\)个人,第\(i\)个人有\(a_i\)个金币,\(b_i\)个银币,\(c_i\)个铜币。选\(x\)个人获得金币、\(y\)个人获得银币、\(z\)个人获得铜币,不重复选人,最......
  • 2022.10 杂题
    P8569[JRKSJR6]第七学区首先,有若干种\(O(n\logV)\)的暴力。我们选择其中操作比较简单的一种:对于每一位,先求出所有\(0\)段的长度之和,然后用所有区间的长度之和减掉......
  • Solution Set - 杂题题解(二)
    目录「CF1726E」AlmostPerfect「CF95E」LuckyCountry「CF1245F」DanielandSpringCleaning「CF1372E」OmkarandLastFloor「AGC038C」LCMs/「LG-P3911」最小公倍数......
  • CSP-S模拟14 ~ CSP-S模拟17 杂题选讲
    \(\text{Preface}\)我觉得殷教说的很对。如果说强行让我写之前咕掉的总结我觉得意义不大,而且我大多数题也都忘了再写思路不一定对而且有亿点敷衍,所以我就写其中一部分吧......
  • 字符串杂杂杂杂杂杂题
    [CF1310C]AuPontRouge首先,肯定要将所有的代价给弄出来,若先不管划分段数的限制,那么所有代价就是\(S\)的所有字串那么字串的数量也就是\(\frac{n*(n+1)}{2}\),约为\(10^6......
  • 10月杂题
    ??怎么已经十月了???1.MagicMatrix首先意识到\(a_{i,j}=a_{j,i}\)是关键性质。Solution1:令\(d_{i,j}=\min\{\max\{a_{i,k},a_{k,j}\}\mid1\lek\len\}\),考虑求所有......
  • 贪心杂题
    \(Preface\)最近咋老考贪心嘞?我的数据结构呢?贪心这玩意确实重要。但是我蒟蒻,老做不出来,而且经常写挂某些需要用到一些小技巧的题。。。具体地,刷贪心题既是刷思维也是刷......
  • ARC杂题
    实际上如果你觉得你切了两道题但是没拍的话那就真的会保龄。所以我挂了200。警钟长鸣。ARC125C使字典序最小的话,他给了\(k\)个我们需要扔掉最后一个不看,要不然可能不优......