在线机考|2024华为实习&秋招&春招编程题(最新)——第3题_个性化歌单推荐系统_300分(十一)

题目内容

假设你是音乐服务的开发者,为了提高用户体验需要解决推荐歌单的同质化问题,保证推荐给用户的所有歌单不包含相同歌曲的。给定一个包含N个歌单和M条歌单重复记录,每个歌单用一个从1到N的整数编号,歌单重复记录包含两个歌单的ID,表示两个歌单有相同的歌曲。

你的任务是对歌单进行合并,找出合并后的最小歌单数量,合并的歌单中不能有相同的歌曲。

输入描述

输出描述

输出一个整数,表示合并后的最小歌单数

样例

输入:

5 6
1 2
1 3
1 4
2 3
2 5
4 5
输出:

3

解题思路

问题转化

这个问题可以转化为图论中的图着色问题:

  • 顶点(Vertices):每个歌单对应一个顶点。
  • 边(Edges):如果两个歌单有相同的歌曲,则在对应的两个顶点之间画一条边。
  • 图着色(Graph Coloring):为每个顶点分配一种颜色,要求相邻的顶点颜色不同。