首页 > 其他分享 >CF1630E 题解

CF1630E 题解

时间:2023-03-23 16:48:07浏览次数:86  
标签:dots 相等 frac dbinom 题解 sum CF1630E 序列

题意

传送门

一个长度为 $ n $ 的环状序列 $ {a_i} $ ,其中的数值满足 $ 1\leq a_i\leq n $ ,序列中可能有相等的数。

序列 $ {a_i} $ 的一个排列和另外一个排列本质相同,当且仅当可以通过旋转使它们变得每一项都对应相等。

对于 $ {a_i} $ 的任何一种本质不同排列,可以构造一张 $ n $ 个点的无向图,节点 $ i $ 对应序列中的 $ a_i $ 。若序列中相邻两项相等(首项和末项也相邻),则在它们的对应的节点之间连一条边。这个排列的价值为无向图的连通块数量。

给定序列 $ {a_i} $ ,从它的所有本质不同排列中等概率选择一个,求价值的期望。

\(1\le n\le10^6\)。

题解

计数,一生之敌……

先考虑没有循环同构条件时的答案。用 \(c_1,c_2,\dots c_m\) 表示各数值的出现次数,总排列数显然为 \(S=\dbinom{n}{c_1,c_2,\dots c_m}\)。连通块个数等于相邻且不同的元素对数,可以枚举这两个数值 \(x,y\) 以及它们的位置,于是总连通块个数为 \(T=\sum\limits_{x\neq y}n\dbinom{n-2}{c_1,\dots ,c_x-1,\dots ,c_y-1,\dots ,c_m}\)。答案为 \(\frac{T}{S}\)。

再考虑有循环同构条件。解决循环同构的利器是 Burnside 引理,先尝试解决 \(S\)。\(S=\dfrac{\sum_{i=1}^nf_i}{n}\),其中 \(f_i\) 表示旋转 \(i\) 单位时不变的排列个数。稍微做过几道 Burnside 的题目就会知道此时序列被分割为 \(\gcd(i,n)\) 个相互独立的环,环上所有元素要求相等。于是 \(f_i=g_{\gcd(i,n)}\),其中 \(g_i=\dbinom{i}{\frac{c_1}{n/i},\frac{c_2}{n/i},\dots,\frac{c_m}{n/i}}\)。

参考上面的思路,枚举 \(x,y\) 的值及位置,\(T=\dfrac{\sum_{i=1}^nh_{\gcd(i,n)}}{n}\),其中 \(h_i=\sum\limits_{x\neq y}n\dbinom{i-2}{\frac{c_1}{n/i},\dots,\frac{c_x}{n/i}-1,\dots,\frac{c_y}{n/i}-1,\dots,\frac{c_m}{n/i}}\)。注意前面的系数,为什么是 \(n\) 不是 \(i\)?因为环上的元素相等,如果 \(a_p\) 与 \(a_{p+1}\) 不相等,\(a_{p+i}\) 与 \(a_{p+1+i}\) 也不相等。\(i\times\frac{n}{i}=n\)。化一下式子,\(h_i=\sum\limits_{x\neq y}\frac{f_ic_xc_yn}{i(i-1)(n/i)^2}\),而 \(\sum c_xc_y\) 易求,于是可以速算。

设枚举了 \(t\) 次 \(i\),复杂度为 \(O(tm)\)。但由于 \(i|c_1,c_2,\dots c_m,n\),这个值并不大。于是此题得解。

标签:dots,相等,frac,dbinom,题解,sum,CF1630E,序列
From: https://www.cnblogs.com/fish07/p/17247979.html

相关文章

  • LDAP - 题解【模拟】
    题面该题为CCF-CSP认证考试真题,试题编号为202303-3。我参加了这次CSP认证(虽然说认证成绩没有达到预期emmm),原题链接见:202303-3。下面搬运题面如下:题目背景西西艾弗岛运营......
  • Nacos 2.2.1 版本下载启动报错问题解决
    先上错误问题这个报错我在网上找了~~~每个人都在说五花八门的,接近真相但却不是!!!!!接下来由我补充nacos-server-2.2.1\nacos\bin\startup.cmd文件修......
  • 单链表OJ题解析1
    1.移除链表元素题目链接题目描述 解题思路这道题较好的解法是创建一个新链表,把不等于val的节点链接到一起,然后返回新链表的头结点structListNode*removeEle......
  • 关于airtest无法连接模拟器问题解决思路
    背景:死活打开airtestIDE死活识别不了夜神模拟器。官网下载最新airtest之后,自己电脑Androidsdk是最新的版本,也用adbversion检查了本地版本、夜神模拟器版本。确实发现夜......
  • 微信小程序之wx.getLocation再次授权问题解决
    首先,在page外定义一个公共函数用于发送获取位置的请求vargetLocation=function(that){wx.getLocation({type:'wgs84',success:function(res){......
  • SuperMicro X10SDV 主板 + ESXi 8.0 不认网卡的问题解决
    问题描述超微主板X10SDV:17cm*17cm板载2个万兆电口[email protected](最高2133MHz、最多32GB*4=128GB)内存槽:注意:只支持2R,不支持淘宝上的诸如三星DDR4......
  • Edu Round 板刷计划 1. Educational Codeforces Round 1 题解
    ChangeLog:2023.03.21开坑。A-TrickySum简单题。注意到\(n\)以内\(2\)的幂次只有\(O(\logn)\)个,因此只要先算出\(1\)~\(n\)里所有数的和再减去\(2\)......
  • 题解 ABC294G【Distance Queries on a Tree】
    DFS序树状数组。不妨以\(1\)为根,设\(\operatorname{dep}(u)\)表示\(u\)到根路径的边权和,\(\operatorname{dis}(u,v)\)表示\(u,v\)间路径的边权和,\(\operatornam......
  • 【题解】CF487E Tourists / 圆方树
    概念圆方树是一种基于无向图构造的树。我们知道,圆方树最早是WC上提出的处理仙人掌的东西,用于将树上做法拓展到复杂度正确的仙人掌做法。但是一些关于点双有性质的题也......
  • CF123E maze 题解
    思考暴力:枚举起点和终点,再枚举每一种遍历序列得到答案。复杂度起飞。根据期望的可加性,我们无需硬着头皮统计每一条序列的贡献,而是把序列的贡献拆成遍历序列包含的边的贡献......