2025.1.28 NOI 模拟赛 题解
T1 P130362 [省选二十连测第十七套 ] --T1--A
题意
给定一个排列,每次可以交换两个位置,要求逆序对数量减小,求可以得到的排列数量,\(n\le20\)
分析
对于值 \(v\),令 \(<v\) 的为 \(0\),\(>v\) 的为 \(1\),则操作后的序列任意前缀和不大于操作前的序列
定理:一个排列合法当且仅当对于所有 \(v\) 得到的 \(0/1\) 序列都满足矛盾
证明:
- 必要性显然
- 充分性考虑选出最小值,必然需要向前移动,一步步向前交换直到到达期望位置,并删去最小值,显然操作后仍然满足要求,递归即可
因此 \(dp\) 从小到大填数,容易做到 \(O(n^22^n)\)
应该可以做到 \(O(n2^n)\)
T2 P130363 [省选二十连测第十七套 ] --T2--B \(\quad\) QOJ #7087. Counting Polygons
题意
给定 \(n,m\),求周长为 \(m\) 的凸 \(n\) 边形的数量(两个凸 \(n\) 边形相同当且仅当两者边长的序列循环同构或逆序后循环同构),\(n\le m\le10^7\),多测 \(T\le10^4\)
分析
令 \(L=\lfloor\frac{m-1}2\rfloor\),则边权序列合法当且仅当最大值 \(\le L\),以下称一个正整数序列合法当且仅当最大值 \(\le L\)
令 \(F(l,s)\) 表示长度为 \(l\) 且总和为 \(s\) 的合法序列数量,考虑容斥计算,枚举 \(i\) 个位置 \(>L\),则 \(F(l,s)=\sum_i (-1)^i \binom li \binom{s-(L+1)i-1}{l-1}\),显然 \(i\) 为 \(O(1)\) 的,从而可以 \(O(1)\) 计算 \(F\)
考虑 \(\text{Burnside}\) 引理,答案为合法序列在循环和循环逆序下的等价类数量,等于在两类变换下的不动点数量的平均数
对于每个 \(0\le i<n\) 求出 长度为 \(n\),总和为 \(m\),循环位移 \(i\) 长度后不变的合法数列数量 和 长度为 \(n\),总和为 \(m\),逆序后循环位移 \(i\) 长度后不变的合法序列数量,这 \(2n\) 项之和的 \(\frac1{2n}\) 即为答案
先考虑前者,等价于序列有长度为 \(\gcd(i,n)\) 的循环节,令 \(f_c\) 表示存在长度 \(\frac nc\) 循环节的方案数,则这部分总贡献为 \(\sum_{i=0}^n f_{\frac n{\gcd(i,n)}}=\sum_{c\mid n}\varphi(c) f_c\),显然 \(f_c=[c\mid m]F(\frac nc,\frac mc)\),从而总贡献为 \(\sum_{c\mid \gcd(n,m)} F(\frac nc,\frac mc)\),容易做到 \(O(\sqrt m)\)
然后考虑后者,等价于序列长度为 \(i\) 的后缀和长度为 \(n-i\) 的后缀回文
令 \(P(l,s)\) 表示长度为 \(l\),总和为 \(s\) 的合法序列中回文的数量,当 \(l\) 为偶数时等于 \([2\mid s]F(\frac l2,\frac s2)\),当 \(l\) 为奇数时只需要判断中心位置是否 \(\le L\),令 \(n'=\lfloor\frac{n-1}2\rfloor\),方案数为 \(\binom{\lfloor\frac{s-1}2\rfloor}{n'}-\binom{\lfloor\frac{s-L-1}2\rfloor}{n'}\)
若 \(n\) 为奇数,前后必有一段长度为奇数,在 \(P(n,m)\) 对应的每种方案基础上,枚举奇数段中心的位置有 \(n\) 种方案,每种方案都对应 \(P(n,m)\) 对应方案的一种重组方式,从而贡献为 \(n\times P(n,m)\)
若 \(n\) 为偶数,若前后两段长度都是偶数,则类似地得到贡献为 \(\frac n2\times P(n,m)\),若长度都是奇数,枚举前一段中心位置的值 \(1\le l\le L\),贡献为 \(\frac n2\sum_{l=1}^L P(n-1,m-l)\),容易转化为二项式上指标求和,可以优化到 \(O(1)\)
总时间复杂度 \(O(n+m+T\sqrt m)\)
T3 P130364 [省选二十连测第十七套 ] --T3--C \(\quad\) QOJ #7589. Game Prediction
题意
给定 \(a_{1\sim n}\),\(q\) 次询问每次给定一个区间,双方轮流操作,每次可以从首尾中选择一个取出,双方都想要最大化与对方取出数字总和的差值,求最终双方取出数字的总和,\(n\le10^5,q\le2\times10^5\),保证 \(a\) 随机生成
分析
可证若存在连续三个数 \(x,y,z\) 满足 \(x\le y\ge z\) 则将它们替换为 \(x+z-y\) 不改变答案,由此可以将 \([l,r]\) 缩为单谷的,显然此时双方贪心选择首尾较大的即可
随机数据下最终序列期望长度不超过 \(O(\log n)\),离线后分治容易做到 \(O(n\log^2 n)\)
比赛结果
\(20+40+70\),\(\text{rk}5\)

浙公网安备 33010602011771号