20260324

A - 粟粟的书架

分两个问题。


Part 1:R=1R=1R=1,C≤5×105C \le 5 \times 10^5C≤5×105.

可以二分分界值,判断大于等于这个值的所有值之和是否大于等于 HHH。

注意到 pi,j≤1000p_{i,j} \le 1000pi,j≤1000,所以不用二分,直接暴力枚举,并计算个数和总和即可。

O(m×pmax⁡×log⁡2C)O(m\times p_{\max}\times \log_2 C)O(m×pmax×log2C)


Part2:R,C≤200R,C \le 200R,C≤200.

同理,但离线下来。

从大到小枚举分界值,暴力算即可。


好像两个都可以这样算,O((R×C+m)×pmax⁡)O((R\times C+m) \times p_{\max})O((R×C+m)×pmax),由于 3s,常数较小,应该能过。

B - 璀灿光华

感觉只要构建出来这个图形,直接暴力求解即可。

C - 染色

枚举出现 SSS 次的颜色,并统计方案。

设 fn,kf_{n,k}fn,k 表示长度为 nnn 的序列,用 kkk 种颜色,且每种颜色出现次数都不是 SSS 的方案数。

答案则是:∑i=0mfn−i×S,m−i×Ami×Cni×S×gi×wi\sum_{i=0}^m f_{n-i\times S,m-i}\times A_{m}^{i}\times C_{n}^{i\times S}\times g_i \times w_i∑i=0mfn−i×S,m−i×Ami×Cni×S×gi×wi.

其中 gi=Ci×SS×gi−1g_i=C_{i\times S}^S \times g_{i-1}gi=Ci×SS×gi−1

关键就是求这个 fff.

发现这个 fff 在 n−i×S,m−in-i\times S,m-in−i×S,m−i 才有用,即 x0+i×Sx_0+i\times Sx0+i×S,y0+iy_0+iy0+i。

重新设 fif_ifi 表示原 fx0+i×S,y0+if_{x_0+i\times S,y_0+i}fx0+i×S,y0+i。

fi=∑j=1i−1fj×gi−j×Cijf_i=\sum_{j=1}^{i-1} f_j\times g_{i-j}\times C_i^jfi=∑j=1i−1fj×gi−j×Cij。

卷积,NTT优化。没时间打了~


好像是错的,看了题解,要用二项式反演。

二项式反演

感觉其实是将类似"恰好"转化成"任意",假如令 fnf_nfn 表示"恰好"为 nnn 的特定结构的方案数,gng_ngn 为"任意"特定结构的方案数。

显然 gn=∑i=1nCni×fig_n= \sum_{i=1}^n C_n^i\times f_ign=∑i=1nCni×fi。

则有 fn=∑i=1nCni×(−1)n−i×gif_n= \sum_{i=1}^n C_n^i\times (-1)^{n-i} \times g_ifn=∑i=1nCni×(−1)n−i×gi。

它还有其它形式对于 gn=∑i=nNCin×fig_n=\sum_{i=n}^N C_i^n\times f_ign=∑i=nNCin×fi,则有 fn=∑i=nNCni×(−1)i−n×gif_n= \sum_{i=n}^N C_n^i\times (-1)^{i-n} \times g_ifn=∑i=nNCni×(−1)i−n×gi

不会证明。


回到这道题,还是一样考虑恰好为 iii 个 SSS 的方案数,设其为 fif_ifi,用 gig_igi 表示大于等于 iii 个的方案数。

gi=Cmi×AnS×i(S!)i×(m−i)n−S×ig_i=C_m^i \times \frac{A_n^{S\times i}}{(S!)^i} \times (m-i)^{n-S\times i}gi=Cmi×(S!)iAnS×i×(m−i)n−S×i.

也有 gi=∑j=inCji×fjg_i=\sum_{j=i}^n C_j^i\times f_jgi=∑j=inCji×fj

反演得,fi=∑j=in(−1)j−i×Cji×gjf_i=\sum_{j=i}^n (-1)^{j-i}\times C_j^i\times g_jfi=∑j=in(−1)j−i×Cji×gj.

可用NTT优化卷积。

相关推荐
史迪仔01121 天前
[QML] Popup 与 Dialog
开发语言·前端·javascript·c++·qt
John.Lewis1 天前
C++加餐课-stack_queue:计算器-逆波兰表达式
开发语言·c++
SilentSamsara1 天前
Linux 管道与重定向:命令行精髓的结构性解析
linux·运维·服务器·c++·云原生
写代码写到手抽筋1 天前
线性插值与Sinc插值的数学原理及实战
算法
孤飞1 天前
zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线
算法
lclin_20201 天前
VS2010兼容|C++系统全能监控工具(彩色界面+日志带单位+完整版)
c++·windows·系统监控·vs2010·编程实战
技术专家1 天前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
csdn_aspnet1 天前
C# (QuickSort using Random Pivoting)使用随机枢轴的快速排序
数据结构·算法·c#·排序算法
鹿角片ljp1 天前
最长回文子串(LeetCode 5)详解
算法·leetcode·职场和发展
paeamecium1 天前
【PAT甲级真题】- Cars on Campus (30)
数据结构·c++·算法·pat考试·pat