POJ 3219 二项式系数奇偶性的判定

简介:

这题想了很久 因为题里的给了递推公式 但是数据范围太大 用不了递归打表的 然后上网发现了

这个 其实还有N!/(K!(N-K)!)分别求出 N! K! (N-K)!中因子2的个数 如果N!中2的因子个数大于

后两项的和 那么就是偶数 如果等于就为奇数  

判定准则Cn^m(m≤n)的奇偶性取决于m和n—m的二进制表达式中是否存在位于同一数位上的

两个数码都是1,如果存在,Cn^m是偶数,否则Cn^m就是奇数.

#include <iostream>
#include<cstdio>
using namespace std;

int main()
{
    int n,k;
    while(~scanf("%d%d",&n,&k))
    printf("%d\n", k&(n-k)?0:1);
    return 0;
}

下面是我做的

N!/(K!(N-K)!)分别求出 N! K! (N-K)!中因子2的个数 如果N!中2的因子个数大于

后两项的和 那么就是偶数 如果等于就为奇数 

#include <iostream>
#include<cstdio>
using namespace std;

int main()
{
    int n,k;
    long long a[35];
    a[1]=2;
    for(int i=2; i<=32; i++)
        a[i]=2*a[i-1];
    while(~scanf("%d%d",&n,&k))
    {
        if(n==k||k==0)
        {
            printf("1\n");
            continue;
        }
        int w=0,b=0,c=0;
        for(int i=1; i<=32; i++)
        {
            w+=n/a[i];
            b+=k/a[i];
            c+=(n-k)/a[i];
        }
        if(w>b+c)
            printf("0\n");
        else
            printf("1\n");
    }
    return 0;
}

目录
相关文章
|
2月前
|
算法 测试技术 C++
【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】3017按距离统计房屋对数目
|
3月前
|
算法 测试技术 C#
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
【差分数组】【图论】【分类讨论】【整除以2】100213按距离统计房屋对数目
|
4月前
考研高数之无穷级数题型一:判断收敛性、求收敛半径以及收敛域和收敛区间(题目讲解)
考研高数之无穷级数题型一:判断收敛性、求收敛半径以及收敛域和收敛区间(题目讲解)
81 0
|
5月前
|
数据安全/隐私保护
|
9月前
|
算法 内存技术
求组合数三种算法
求组合数三种算法
49 0
|
10月前
|
算法
Manachar算法(马拉车算法):快速求取最长回文子串
求取最长回文子串的长度的最佳方法为 Manachar算法 ,俗称马拉车算法。常见的方法就是中心扩散法,但时间复杂度较高。
68 0
Manachar算法(马拉车算法):快速求取最长回文子串
|
算法 C++
容斥原理算法的实现
容斥原理算法的实现
容斥原理算法的实现
7-166 二分法求多项式单根 (20 分)
7-166 二分法求多项式单根 (20 分)
92 0