如果声音不记得
Source & Knowledge
2024 年 8 月语言月赛,由洛谷网校入门计划/基础计划提供。
考察二维数组、简单构造。
文字题解
共有
如何得到一个符合题意的序列?首先,我们需要按照题材将歌曲的编号分别存储下来。
如何存储?我们将利用一个一维数组
当输入了第
- 将
c_i 类的歌曲数目增加1 ,也就是w[c_i] 增加1 - 将
i 存入s[c_i][w[c_i]]
分类存储完后,我们可以按照如下的策略安排播放顺序:
- 播放第
1 种题材的第1 首 - 播放第
2 种题材的第1 首 - ……
- 播放第
m 种题材的第1 首 - 播放第
1 种题材的第2 首 - 播放第
2 种题材的第2 首 - ……
- 播放第
m 种题材的第2 首 - ……
- 播放第
1 种题材的第k 首 - 播放第
2 种题材的第k 首 - ……
- 播放第
m 种题材的第k 首
这可以通过按照先列后行对
for(int i = 1; i <= k; i++) {
for(int j = 1; j <= m; j++) {
cout << s[j][i] << endl;
}
}