[Beijing2009 WinterCamp]函数依赖
时间限制:3s 空间限制:64MB
题目描述
输入格式
输入文件的第一行为一个整数 N(N ≤ 10)和 M(1 ≤ M ≤ 1000),表示属性集中 的属性个数和函数依赖集中的依赖个数。这里我们默认大写字母中的前 N 个字 母为我们所考虑的属性。接下来的 M 行每行一个字符串表示一个函数依赖,如 AB-->DE。(中间的蕴含符号是由减号和大于号组成。另外需要说明的是,只有当 我们同时得到 A和 B 的时候,才能推出D和 E) 。
输出格式
第一行希望你输出你找到的候选码的个数K。 接下来的 K行每行 输出一个候选码。候选码本身按字母顺序排列,所有候选码按照字典顺序排列输 出。如果没有找到候选码,输出“No candidate key”(不含引号)。
样例输入
5 5 AB->C AC->B AD->E BC->D E->A
样例输出
4 AB AC BE CE
提示
对于30%的测试数据,满足只有二元联系(即不存在函数依赖左边或右边的 属性个数超过 1 个)。 对于 40%的测试数据,满足N ≤ 5。 对于 70%的测试数据,满足M ≤ 100。 对于100%的测试数据,满足 1 ≤ N ≤ 10, 1 ≤ M ≤ 1000。
题目来源
Day1