本文主要是介绍POJ 1430 Binary Stirling Numbers (斯特林数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意:给你n,k,求S(n,k) mod 2。
题解:没什么好说的,知道公式就好解决。C(z,w) = z! / [(w!) * (z-w)!],要判断奇偶性只需要统计一下分子分母的所含的因子2的个数。
#include<cstdio>
#define lint __int64
lint getTwo ( lint x )
{
lint cnt = 0, bit = 2;
while ( x / bit )
{
cnt += x / bit;
bit <<= 1;
}
return cnt;
}
int main()
{
int d, n, k;
scanf("%d",&d);
while ( d-- )
{
scanf("%d%d",&n, &k);
lint z = n - (k+2) / 2;
lint w = (k-1) / 2;
if ( getTwo(z) - getTwo(w) - getTwo(z-w) > 0 )
printf("0\n");
else printf("1\n");
}
return 0;
}
这篇关于POJ 1430 Binary Stirling Numbers (斯特林数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!