题目名称 | 902. 乐曲主题 |
---|---|
输入输出 | theme.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 15 |
题目来源 | sywgz 于2012-07-12加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:99, 提交:266, 通过率:37.22% | ||||
Hzoi_Mafia | 100 | 0.000 s | 0.00 MiB | C++ |
Cooook | 100 | 0.000 s | 0.00 MiB | C++ |
kito | 100 | 0.003 s | 0.50 MiB | C++ |
Go灬Fire | 100 | 0.004 s | 0.48 MiB | C++ |
L_in | 100 | 0.006 s | 0.45 MiB | C++ |
HZOI_蒟蒻一只 | 100 | 0.007 s | 0.10 MiB | C++ |
Fancy、 | 100 | 0.007 s | 0.85 MiB | C++ |
stdafx.h | 100 | 0.009 s | 0.44 MiB | C++ |
咸鱼二号 | 100 | 0.009 s | 0.45 MiB | C++ |
_Itachi | 100 | 0.009 s | 0.82 MiB | C++ |
关于 乐曲主题 的近10条评论(全部评论) | ||||
---|---|---|---|---|
yeah
| ||||
主题是子串还是子序列啊,我按照子串写的,结果过了???
| ||||
做过$Sandy$的卡片再做这个感觉好熟悉
| ||||
我怀疑这个也是楼教主男人八题啊……除了内存大了一点……
可是poj就是不让我成男人……还是因为超时……
HZOI_蒟蒻一只
2017-06-14 10:28
13楼
| ||||
首题
| ||||
哈希+哈希表水过。。。
| ||||
终于学会哈希了......
好感动...... | ||||
差分之后把自己差懵了。。。。。
| ||||
居然把邻接表打错了。
| ||||
注意二分的边界……
|
我们用N(1 <= N <=5000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,每个数表示钢琴上的一个键。很不幸这种表示旋律的方法忽略了音符的时值,但这项编程任务是关于音高的,与时值无关。
许多作曲家围绕一个重复出现的“主题”来构建乐曲。在我们的乐曲表示法中,“主题”是整个音符序列的一个子序列,它需要满足如下条件:
1.长度至少为5个音符;
2.在乐曲中重复出现(可能经过转调,见下);
3.重复出现的同一主题不能重叠。
“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值。
给定一段乐曲,计算其中最长主题的长度(即音符数)。
输入文件的第一行包含整数N。下面的每一行(最后一行可能除外)包含20个整数,表示音符序列。最后一行可能少于20个音符。
输出文件应只含一个整数,即最长主题的长度。如果乐曲中没有主题,那么输出0。
30 25 27 30 34 39 45 52 60 69 79 69 60 52 45 39 34 30 26 22 18 82 78 74 70 66 67 64 60 65 80
5
这个长度为5的主题是输入文件中第一行的最后5个音符和第二行开头5个音符。