• 百度松果 美丽的三角形(求杨辉三角n行m列的数奇偶性)


    题目描述

    tri.jpg
    三角形的生成规律如下:
    1.我们行从0计数,即最上面的是第0行第0列。
    2.第n行有n+1个数字
    3.第0行只有一个数字1
    4.定义 ( x , y ) (x, y) (x,y)为第x行第y列的元素,对于第n(n>0)行,第0个和第n个数字是1,然后对于其他每一列的数字 ( n , i ) ( 1 < i < n ) (n,i)(1(n,i)(1<i<n),如果 ( n — 1 , i ) (n—1,i) (n—1,i) ( n − 1 , i − 1 ) (n-1,i-1) (n1,i1)之中只有一个1,那么 ( n , i ) (n,i) (n,i)是1,否则是0。

    给出一个点的坐标 ( x , y ) (x, y) (x,y)请你输出该坐标对应的元素是1还是0,若 y > x y>x y>x请输出0。

    输入格式

    第—行输入测试样例组数T( 1 ≤ T ≤ 5 × 1 0 5 1≤T≤5×10^5 1T5×105)
    接下来T行,每行输入两个整数( 0 < x ≤ 2 20 , 0 ≤ y ≤ 2 20 00<x220,0y220)

    输出格式

    对于每个数据每行输出一个数”O”或”1”(输出不包括双引号)

    输入样例
    1
    0 0
    
    • 1
    • 2
    输出样例
    1
    
    • 1

    分析

    该问题要求我们求出一个三角中n行m列的数是0还是1。
    我们通过观察杨辉三角的模型和本题目的模型进行比较可以得到一个规律:
    在杨辉三角中的奇数都对应着题目中的1,偶数都对应着0。
    TR
    进而我们可以将问题转化为求杨辉三角中n行m列的一个数是奇数还是偶数。
    由于求解杨辉三角的某一位置上的数可以使用公式:
    n u m = C n m = n ! m ! ⋅ ( n − m ) ! num=C^{m}_{n}=\frac{n!}{m!·(n-m)!} num=Cnm=m!(nm)!n!
    而判断这个组合数的奇偶性的关键是判断 n ! n! n! m ! m! m! ( n − m ) ! (n-m)! (nm)!中质因数2的个数,如果分子中2的个数与分母中2的个数相等,那么则为奇数,否则为偶数。

    C++ 代码
    #include
    using namespace std;
    long long a,b,c;
    int T;
    int calc(int x) //求x的阶乘中质因数2的总个数
    {
        int co=0;
        while(x){
            x/=2;
            co+=x;
        }
        return co;
    }
    int main()
    {   
        cin>>T;
        while(T--)
        {
            cin>>a>>b;
            c=a-b;
            int ca=0,cb=0,cc=0;
            ca=calc(a),cb=calc(b),cc=calc(c);
            //n比m小,直接输出0
            if(c<0){
                cout<<0<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  • 相关阅读:
    CS231n-2022 Module1: Minimal Neural Network case study
    ThingsBoard教程(二十六):设备使用HTTP协议 API链接到ThingsBoard
    视频监控系统/安防视频平台EasyCVR广场视频细节优化
    Linux基础IO
    lingo问题需要解决
    acedGetString 函数
    HAL库实现基于STM32+RN8302B的电压采集
    Docker从初学到进阶二(使用Docker命令,自定义镜像,部署微服务集群,配置自己的镜像仓库)
    webrtc一对一视频通话功能实现
    阿里云ack集群升级流程
  • 原文地址:https://blog.csdn.net/Jay_fearless/article/details/127125012