P8478 「GLR-R3」清明

这是一篇关于算法的博客,讨论了如何解决一道涉及雨水分布和组合数学的题目。作者介绍了如何通过生成函数和容斥原理来解决这个问题,并探讨了不同方法的时间复杂度,包括子集卷积和直接枚举子集。尽管题解提到可以优化到O(nk^22^n-k),但作者目前还未理解实现细节。
摘要由CSDN通过智能技术生成

题目描述

雨打在窗沿,下坠,一级一级。

这里一共有 n n n 级窗沿,从高到低编号,最高层编号为 1 1 1,最底层编号为 n n n。假设在某一瞬间,第 i i i 级窗沿上有 a i a_i ai 单位体积的雨水。由于奇妙的物理原因,第 i i i 级的雨水将在「下一个瞬间」滴向第 i + 1 , i + 2 , … , min ⁡ { i + k , n } i+1,i+2,\dots,\min\{i+k,n\} i+1,i+2,,min{ i+k,n} 级,也可能留在第 i i i 级,但是每一种去向的雨水的单位体积都应是非负整数,且总和为 a i a_i ai

设在「下一个瞬间」,第 i i i 级窗沿上有 a i ′ a_i' ai 单位的雨水,那么称此时雨水的奇妙度 ∏ i = 1 n a i ′ \prod_{i=1}^n a_i' i=1nai。现在,悲伤的人儿想知道,对于所有本质不同的「下一个瞬间」,雨水的奇妙度之和对素数 P = 998244353 P=998244353 P=998244353 取模的结果。

两个「下一个瞬间」本质不同,当且仅当存在编号 i < j i<j i<j 的两级窗沿,从窗沿 i i i 滴向窗沿 j j j 的雨水的单位体积不同。
k < n ≤ 32 k<n\le32 k<n32

题解

c i , j c_{i,j} ci,j表示第 i i i滴雨往第 j j j滴雨滴了 c i , j c_{i,j} ci,j滴水,则答案为
∑ c ∏ i = 1 n ( ∑ j = max ⁡ { 1 , i − k } c j , i ) \sum_{c}\prod_{i=1}^n(\sum_{j=\max\{1,i-k\}}c_{j,i}) ci=1n(j=max{ 1,ik}cj,i)
我们希望用上 ∑ j c i , j = a i \sum_{j}c_{i,j}=a_i jci,j=ai的条件,所以把后面的式子拆成若干单项式
∑ c ∏ i = 1 n ∏ S i ∈ [ i , n ] [ ∑ j c i , j = a i ] ∏ k ∈ S i c i , k \sum_{c}\prod_{i=1}^n\prod_{S_i\in[i,n]}[\sum_{j}c_{i,j}=a_i]\prod_{k\in S_i}c_{i,k} ci=1nSi[i,n][jci,j=ai]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值