摘要: 题意:规定只包含4或7的数为幸运数字,给定n个数的序列,求他的子序列,使得该子序列的长度为k并且满足该子序列中不存在相同的两个幸运数字。问一共寻在多少种可能。(只要该数的下标不同则认为是不同的序列)思路:记录每个幸运数字的个数,枚举从非幸运数中取出的个数i,那么在幸运数字中取k - i。这里C(no,i)好算,直接带公式算除法取模,而在幸运数字中取k-i个的可能需要同过dp来算,这里类似于01背包模型,dp[i +1][j + 1] = dp[i][j]*a[i] + dp[i][j + 1]; 表示前i个取了j个的可能数。这里对dp进行了空间优化View Code //#pragma com 阅读全文
posted @ 2013-04-29 10:17 E_star 阅读(268) 评论(0) 推荐(0) 编辑