一道奇怪的题

今天reflash给我出了一道题:
ki=1xi[xi1][ki=1xiS]modpk,S1018,p107
我一开始是这样想的:如果 F(x)=i=0ixi ,那么答案就是 Fk(x) 的前S项系数和,所以我们就得到了一个 O(SlogSlogk) 的fft做法。。。
然后我就想能不能用别的方法做。。但是我发现如果我直接考虑这个式子我似乎只有dp的做法,而dp的话状态数首先就是 O(n2) 的,优化似乎也最多只能用fft了。。因为这个乘法它没法用分配律什么的提出来。
所以考虑模型转化,乘法可以看做是(1+1+1+…)(1+1+1+….)(1+1+1+…)…,所以就相当于是有S个球,我们把要把它们分成k份,再在每一份中选一个球。所以我们从左往右考虑,就相当于是要选一个球,再选一个球作为边界,再选一个球,再选一个边界。。但是问题在于,每一份中选的那个球和边界可以是同一个球。
所以我就不会做了。
然后听了reflash的讲解,感觉非常非常神奇!原来可以为每个边界单独开一个球, 就相当于是在S+k个球中选2k个球,然后从小到大排序把第偶数个球实际上是它左边的球,这样答案就是 C2kS+k

所以不妨再来看那个经典问题:在n个不同元素中有重复取k个的方案数。原来学的都是插板法,但是这样的话就可以得到一种更简单的解释了!对于每一种方案,我们选的元素编号更大的k-1个新建一个球;那么每一种在n+k-1个球中选k的方案,我们如果把后k-1个看成0,其他的n个看成1,那么选的这k个就等价于在选它或它左边第一个1,所以就与在n个元素中有重复取k个的方案一一对应。

广义地看这个问题,就是一个序列 {xn},xi[1,S],i[1,n],xixi10,i(1,n] ,其中有n-m个数要求 [i=1][xixi1>0] ,那么答案就是 CnS+m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值