20190424NOI.AC省选模拟

A

在这里插入图片描述
怎么是个FFT裸题啊…
直接通配符匹配的套路玩起来就好了吧…

*B

在这里插入图片描述
上午做题怎么都这么迷糊…
首先式子可以变成这个
∑ d d ∑ i ∑ j [ i ∗ j ∗ d 2 ≤ n ] [ g c d ( i , j ) = 1 ] \sum_d d\sum_i \sum_j[i*j*d^2\leq n][gcd(i,j)=1] ddij[ijd2n][gcd(i,j)=1]
反演一手
∑ d d ∑ k μ ( k ) ∑ i ⌊ n d 2 k 2 i ⌋ \sum_dd\sum_k\mu(k)\sum_i\lfloor\frac{n}{d^2k^2i}\rfloor ddkμ(k)id2k2in
这时候 1 0 13 10^{13} 1013 3 e 8 3e8 3e8左右…考虑枚举 d k dk dk
∑ T ∑ i ⌊ n T 2 i ⌋ ∑ d ∣ T μ ( d ) T D \sum_T \sum_{i}\lfloor\frac{n}{T^2i}\rfloor\sum_{d|T}\mu(d)\frac{T}{D} TiT2indTμ(d)DT
其实 μ \mu μ i d id id就是 ϕ \phi ϕ,那么后面写成 ϕ \phi ϕ就可以了
∑ T ∑ i ⌊ n T 2 i ⌋ ϕ ( T ) \sum_T\sum_{i}\lfloor\frac{n}{T^2i}\rfloor\phi(T) TiT2inϕ(T)
前一维只有 ( n ) \sqrt(n) ( n)
后面枚举的量也很少…似乎这样就可以过了
自己sb,感觉枚举乘积不能过就没想了

C

在这里插入图片描述
考虑往一个空序列里加数,如果 i i i位置加上了数字 j j j,那么 j j j位置也要加上数字 i i i
这样出来的序列就是对合的
然后考虑怎么弄数,我们可以枚举下标在 [ 1 , k ] [1,k] [1,k]中存在多少个 B B B中的数,显然是一段前缀。并且如果能填进去,方案是唯一的。因为能填的下标与个数相同,还要保证顺序
如果能填进去,不妨设 B B B序列剩下了 x x x个数, A A A序列还剩下 n − k n-k nk个数可以填,先放 B B B序列的话就是 C n − k x C_{n-k}^{x} Cnkx,这样 A A A序列还有 n − k − x n-k-x nkx个位置需要互相放数,此时是独立的,直接预处理一个 f [ i ] f[i] f[i]表示长度为 i i i的序列互相放有多少种方案
显然转移是 f [ i ] = f [ i − 1 ] + f [ i − 2 ] ∗ ( n − 1 ) f[i]=f[i-1]+f[i-2]*(n-1) f[i]=f[i1]+f[i2](n1)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值