首页 > 其他分享 >hdu7438

hdu7438

时间:2024-08-28 21:15:06浏览次数:10  
标签:题解 trick 次数 序列 立方 hdu7438

题面

给定长度为 \(N\) 的序列 \(a\)。

一个序列有很多个子序列,每个子序列在序列中出现了若干次。

小马想请你输出序列 \(a\) 每个非空子序列出现次数的立方值的和,答案对 \(998244353\) 取模。

数据范围:\(n,a_i\le 250\) 。

题解

一个很高级的trick,"出现次数的立方值" 等价于 "我们选三个序列,他们恰好相同的方案数" 。

这样就可以设 \(f_{i,j,k}\) 表示现在选了三个一样的序列,第一个序列最后一位为 \(a_i\) , 第二个为 \(a_j\) ,第三个为 \(a_k\)
的方案数。

转移时只需要满足 \(a_i=a_j=a_k\) ,利用前缀和优化,可以实现 \(O(n^3)\) 的复杂度。

启发

  • 就是这个trick,之前确实是没有什么印象。

标签:题解,trick,次数,序列,立方,hdu7438
From: https://www.cnblogs.com/qwq-123/p/18385557

相关文章