序号 | 标题 | 作者 | 发表时间 | 费用 | 订购数 | 操作 |
---|
背景:
XX中学原创音乐大赛就要开始啦!GEORGE一听到这个消息,就兴奋起来了。
“哈哈!偶也要成为做曲家&演唱家啦” GEORGE心想。
“1 3 5 3 1 3 5 3 1,恩,这调子不错。”
“3 5 6 5 3 这旋律也不错嘛。”
“可是....怎么把它们组合成一首乐曲呢?”
GEORGE开始为这伤脑筋了。
......对了,用电脑! 让电脑来做曲,看看电脑会写出什么曲子来。
“给电脑下个‘悦耳’音调的定义,效果大概会更好些。”
“要让电脑写的曲子越长越好,这样偶的登台时间就长了。”
“不过也不能太长,至少不能出现3遍单位旋律,否则就变成老和尚念经了”
GEORGE想着想着。
终于决定去做了 。。。 谁知一开机,便中了倒霉的病毒,电脑坏掉了。
这可怎么办?GEORGE急死了,你能帮助GEORGE吗?
任务:
给定N个GEORGE想出的单位旋律,并给定GEORGE所谓的悦耳定义,程序
给出最长的乐谱。
注意:
1.旋律的表示:
采用类似简谱的格式:
每个音符的格式为
[#/b] <音符> <音长>
音符为1,2,3,4,5,6,7(中音区)
-1,-2,-3,-4,-5,-6,-7(低音区)
+1,+2,+3,+4,+5,+6,+7(高音区)
或 0 (休止符)
# 为升半度记号 b 为降半度记号 ,可以省略(即不升也不降)
音长为 e f t o 分别代表八分音符,四分音符,二分音符,全音符
即 唱 1/8拍, 1/4拍, 1/2拍 1拍
各个音符之间用一个(仅一个)空格分隔
如:
1f 3f 5f 3f 1f 3f 5f 3f 1f
#2f 0e b+7t -7o 0f
2.悦耳的定义:
首先规定度数差:
1 2 3 4 5 6 7 +1
其中3 4 以及 7 +1相差为半度(记为0.5),其余相邻的2个音符相差1度
如 4 6相差 2度
3 5相差1度半(写为1.5)
#1 #2 相差 1度
当然高音低音也是同理了
下面介绍相邻单位旋律度数差的概念:
相邻2个单位旋律(简称旋律A,旋律B,旋律B接在旋律A后) 的相邻音符的度数 差
(即A的最后一个非0音符与B的第一个非0音符的度数差),简称单位旋律度 数差(输
入数据中不会出现一个单位旋律中只有休止符的情况)
例如
1 3 5 3 1 3 5 3 1 (为简便没写音长)
后面接 3 5 6 5 3 则度数差为 1 3的度数差 为2
而
1 3 5 7 5 3 1 0 后接
-7 1 2 3 4 相差 为 1 和 -7度数差为半度(这里写为0.5)
GEORGE所规定的悦耳定义是指:
GEORGE会在输入文件中给你几个度数差,表示允许的相邻单位旋律度数差.
当相邻2个单位旋律差为GEORGE给定的度数差之一时,便可以将这2个旋律连接
3.乐谱中的每个单位旋律最多只能用2次(因为用多了听众会觉得厌烦).但可以直接连
接重复 (例如 A A B B C C (A,B,C为单位旋律) )
4.要求所做的乐谱的弹奏时间最长(弹奏时间中包括休止符的时间)