摘要:
这题是定义如下的一个数:S(0, 0) = 1; S(n, 0) = 0 for n > 0;S(0, m) = 0 for m > 0;S(n, m) = m S(n - 1, m) + S(n - 1, m - 1), for n, m > 0.也就是题中所说的把一个含有n个元素的集合分成m份,共有多少种分法。现在题目就是要求S(n, m)的奇偶性。如果m是一个偶数的话,那么我们可以推出 S(n, m)Ξ S(n-1, m-1) (mod 2),如果m是一个奇数的话,我们推出S(n, m)Ξ (S(n-1, m) + S(n-1, m-1)) (mod 2)。后面看到某一 阅读全文
摘要:
详见代码:方法一:#include <cstdlib>#include <cstring>#include <cstdio>using namespace std;char s[1005];int len, Mp[25] = {1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};// 直接计算出其循环节为20这里将0-19的列表于上,当N<5时直接输出,其余需要递归N/5因为这个表是删除了所有的5的倍数的 int slove(){ int ans = 1; while (len) { len -= !s[len-1]; a 阅读全文