#O3220. LQ.中级组.编程题.十四届.STEMA.04. 收集宝石
LQ.中级组.编程题.十四届.STEMA.04. 收集宝石
题目描述
聪聪在玩冒险岛游戏,为了召唤法力更强大的神龙,他必须尽可能收集更多的魔法宝石,每颗宝石都有不同的功效。不过在游戏里,几乎每一颗魔法宝石都会和另外一颗宝石相冲。相冲表示这两颗宝石不能同时拥有。例如,宝石 A 和宝石 B 相冲,那么,你可以选择两颗宝石都不收集,也可以只收集宝石 A 或者只收集宝石 B ,但不能同时拥有宝石 A 和宝石 B 。
现在给定了游戏里宝石的数量 N ( 2 ≤ N ≤ 100 ),宝石从 1 到 N 依次编号,并给出 M 对( 2 ≤ M ≤ 2000 )相冲的宝石编号,请帮聪聪计算出最多能够收集到多少颗宝石。
例如:N=6,M=8 时,6 颗宝石的编号分别为 1、2、3、4、5、6 ,其中有 8 对相冲的宝石,对应编号如下:
1 2
2 3
2 4
2 5
2 6
3 4
4 5
5 6
这表示宝石 1 和宝石 2 相冲,宝石 2 和宝石 3、4、5、6 都相冲,宝石 3 和宝石 4 相冲,宝石 4 和宝石 5 相冲,宝石 5 和宝石 6 相冲。
有三个方案收集到的宝石数量最多:(1 3 5)、(1 3 6)、(1 4 6),这些方案里,最多收集到的宝石数量都是 3 ,所以程序输出 3 。
输入格式
第一行输入两个正整数 N 和 M ( 2 ≤ N ≤ 100 , 2 ≤ M ≤ 2000 ),分别表示游戏里的宝石数量和 M 对相冲的宝石,两个正整数之间用一个空格隔开。
接下来输入 M 行,每行两个正整数,分别表示相冲的两颗宝石的编号,两个正整数之间用一个空格隔开。
输出格式
一个整数,表示聪聪在游戏里最多能够收集到的宝石数量。
样例
6 8
1 2
2 3
2 4
2 5
2 6
3 4
4 5
5 6
3
输入数据中,描述冲突关系时,较小的数字放在前面,较大的数字放在后面,保证没有重复的冲突关系