#CF1950G. 随机播放歌曲
随机播放歌曲
G. 随机播放歌曲
时间限制: 秒 内存限制: 兆字节
题目描述
Vladislav 的播放列表中有 首歌曲,编号为 到 。 第 首歌曲有流派 和作者 。
他希望制作一个令人兴奋的播放列表: 相邻两首歌必须满足:流派相同 或 作者相同(可都满足)。
不一定能使用全部歌曲,所以分两步操作:
- 删除尽可能少的歌曲
- 把剩下的重新排列,使其成为令人兴奋的播放列表
求:最少需要删除多少首歌。
输入格式
第一行一个整数 (),表示测试用例数量。
每个测试用例:
- 第一行一个整数 ()
- 接下来 行,每行两个字符串 (仅小写字母)
保证:
- 所有测试用例的 总和
- 所有字符串总长之和
输出格式
对每个测试用例,输出一个整数: 能构成合法播放列表的前提下,最少删除多少首歌。
样例输入
4
1
pop taylor
4
electronic themotans
electronic cardream
pop themotans
pop irinrim
7
rap eminem
rap dre
rap kanye
pop taylor
indierock arcticmonkeys
indierock arcticmonkeys
punkrock offspring
4
a b
c d
e f
g h
样例输出
0
0
4
3
题目注释(样例解释)
- 测试用例 :只有 首歌,合法,删除 首。
- 测试用例 :可以排成合法序列,删除 首。
- 测试用例 :保留 首,删除 首。
- 测试用例 :只能保留 首,删除 首。
需要我马上给你 1950G 官方标程题解 + 可直接 AC 代码 吗? 是经典状压 DP + 哈密顿路径模型。