ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

号爸2022暑假插班测试 D 解题报告

2022-06-26 23:32:37  阅读:239  来源: 互联网

标签:第一个 因数 情况 因子 解题 2022 序列 插班


给出两个整数 \(n, m\)。问有多少个长度为 \(n\) 的序列 \(A\),满足以下条件:
• \(1 ≤ A_i ≤ m(i = 1, 2, · · · , n)\)
• \(∀i ∈ [1, n − 1], A_{i+1}\) 是 \(A_i\) 的倍数。
由于答案可能很大,所以你只需要输出答案对 \(998244353\) 取模的结果。

例如: \(n = 3,m = 4\) 有 \(13\) 个符合条件的序列,分别是: \([1,1,1],[1,1,2],[1,1,3],[1,1,4],[1,2,2],[1,2,4],[1,3,3],[1,4,4],[2,2,2],[2,2,4],[2,4,4],[3,3,3],[4,4,4]\)。

分析:
考虑固定最后一个数,计算其贡献。

先举个例子。譬如,我们最后一个数是 \(6\)。
如果只有一个数,那只有一种情况: \([6]\)。
如果有两个数,第一个数可以取 \(6\) 的因子,有 \(4\) 种情况: \([1,6],[2,6],[3,6],[6,6]\)。
如果有三个数,那么第一个数可以取第二个数的因子,由于 \(1,2,3,6\) 分别由有 \(1,2,2,4\) 个因子,所以有 \(1+2+2+4=9\) 种情况。

考虑 \(6=2^1 \times 3^1\),前面的数都逃不开它的因数。尝试统计所有情况中 \(6\) 的每个因数在第一个数出现的次数。

\(n=1:\)

\(2^0\) \(2^1\)
\(3^0\) 0 0
\(3^1\) 0 1

\(n=2:\)

\(2^0\) \(2^1\)
\(3^0\) 1 1
\(3^1\) 1 1

\(n=3:\)

\(2^0\) \(2^1\)
\(3^0\) 4 2
\(3^1\) 2 1

发现这好像是前缀和的形式。

标签:第一个,因数,情况,因子,解题,2022,序列,插班
来源: https://www.cnblogs.com/Zeardoe/p/16414706.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有