舞蹈链重复覆盖问题
题目
http://acm.hdu.edu.cn/showproblem.php?pid=3335
题意
给出n个数,需要从里面选择一些出来,但是如果选择了某个数k的话,则能被k整除或k能整除的数都不能再选了,问最多能选择多少个数。
题目解析
这题原理不是太懂,参考网上大佬的解题方法AC的,方法如下:
首先建立一个n×n的整除关系矩阵,如果第i个数于第j个数有整除关系,则矩阵的第i行第j列为1,用这个矩阵来运行舞蹈链重复覆盖算法,取结果最大值作为答案。
代码
1 | /* http://acm.hdu.edu.cn/showproblem.php?pid=3335 */ |