A37464. 小贝要做一份黑暗料理,现有N(2≤N≤20)种不同的食材供她选择,食材编号从1到N。其中有些食材同时食用会产生副作用,所以产生副作用的食材只能选择其中一种食材或者都不选择。已知同时食用会产生副作用的食材有M对(0≤M≤N*(N-1)/2),请计算出这份黑暗料理中最多能有多少种食材。注意:会产生副作用的食材以两个编号表示,两个编号不等且编号小的在前,例如(1,2)和(2,3)。例如:N=…
填空题
困难
知识点
题目描述
题目描述:
小贝要做一份黑暗料理,现有N(2≤N≤20)种不同的食材供她选择,食材编号从1到N。其中有些食材同时食用会产生副作用,所以产生副作用的食材只能选择其中一种食材或者都不选择。
已知同时食用会产生副作用的食材有M对(0≤M≤N*(N-1)/2),请计算出这份黑暗料理中最多能有多少种食材。
注意:会产生副作用的食材以两个编号表示,两个编号不等且编号小的在前,例如(1,2)和(2,3)。
例如:N=5,M=3时,5种食材编号为1到5,其中有3对食材会产生副作用:(1,2)、(2,3)、(4,5)。
可选择1、3、4号食材或1、3、5号食材做黑暗料理,最多可以有3种食材。
输入描述
第一行输入两个正整数N(2≤N≤20)和M(0≤M≤N*(N-1)/2),分别表示食材数量及会产生副作用的食材对数,两个正整数之间以一个空格隔开接下来输入M行,每行两个正整数(1≤正整数≤N),表示会产生副作用的两种食材编号,两个正整数之间以一个空格隔开,两个编号不等且编号小的在前
输出描述
输出一个整数,表示这份黑暗料理中最多能有多少种食材
样例输入
5 3
1 2
2 3
4 5
样例输出
3
参考答案
n,m=map(int,input().split())
a=[]
for i in range(m):
a.append(list(map(int,input().split())))
path=[]
ans=0
def chick(p):
for i in path:
if [i,p] in a:
return False
return True
def dfs(p):
global ans
if p>n :
return
if chick(p):
path.append(p)
ans=max(ans,len(path))
dfs(p + 1)
path.pop()
dfs(p+1)
dfs(1)
print(ans)
上一题
下一题