主题:[回帖就加分]这题除了回溯还有别的方法吗?
你要把N个东西要发给M个人。
这些东西有3种属性(以下用A B C表示)。
当每个人得到一个东西时,为了感谢你,他会给你钱。他们不喜欢每次都得到一样的东西,所以你给他们的东西不一样,他们给你的钱也不一样。当某个人这次和前两次(如果获得的东西不足3个,则按到目前位置获得的东西总数来算)获得的东西中:
(1)全部都是一种属性的东西,则他给你1元钱。
(2)有两种不同属性的东西,则他给你2元钱。
(3)有三种不同属性的东西,则他给你3元钱。
请问,怎么发东西才能使你得到的钱最多?
(注意:并不是每个人都要分到东西,你甚至可以把东西全部发给一个人)
[输入]
输入的第一行是一个数N,表示你手上的东西总数。(1<=N<=1000)
第二行是一个数M,表示人数。(1<=M<=30)
第三行是一个长度为N的字符串,每个字符表示相应东西的属性。
[输出]
一个数,表示你最多可以得到的钱数。
[输入样例]
6
2
ABACCB
[输出样例]
12
(依次发放顺序为:第1个人、第1个人、第2个人、第2个人、第1个人、第2个人)
这些东西有3种属性(以下用A B C表示)。
当每个人得到一个东西时,为了感谢你,他会给你钱。他们不喜欢每次都得到一样的东西,所以你给他们的东西不一样,他们给你的钱也不一样。当某个人这次和前两次(如果获得的东西不足3个,则按到目前位置获得的东西总数来算)获得的东西中:
(1)全部都是一种属性的东西,则他给你1元钱。
(2)有两种不同属性的东西,则他给你2元钱。
(3)有三种不同属性的东西,则他给你3元钱。
请问,怎么发东西才能使你得到的钱最多?
(注意:并不是每个人都要分到东西,你甚至可以把东西全部发给一个人)
[输入]
输入的第一行是一个数N,表示你手上的东西总数。(1<=N<=1000)
第二行是一个数M,表示人数。(1<=M<=30)
第三行是一个长度为N的字符串,每个字符表示相应东西的属性。
[输出]
一个数,表示你最多可以得到的钱数。
[输入样例]
6
2
ABACCB
[输出样例]
12
(依次发放顺序为:第1个人、第1个人、第2个人、第2个人、第1个人、第2个人)