• CPC23-4-K. 喵喵的神数 (数论 Lucas定理)


    喵喵的神∙数
    Time Limit: 1 Sec Memory Limit: 128 MB


    Description
    喵喵对组合数比較感兴趣,而且对计算组合数很在行。

    同一时候为了追求有后宫的素养的生活,喵喵每天都要研究
    质数。

    我们先来复习一下什么叫做组合数。对于正整数P、T  
                                                           
    然后我们再来复习一下什么叫质数。质数就是素数,假设说正整数N的约数仅仅有1和它本身,N就是质数;另外。
    1不是质数。
    今天,喵喵想要知道

                                     
    Input
    输入第一行是一个整数N(N<=1000)。
    接下来N行,每行包含一个正整数T和一个质数P(1<=P<=T<231)。
    Output
    包含N行,依据输入的顺序。每一行为一个整数:
    Sample Input
    2
    3 2
    10 3
    Sample Output
    1
    0
    HINT
    Source
    CPC3




    解题思路:

    这题是纯数学题,唉,数学就是硬伤啊!

    搞了半天。没有结果。果断百度了一下,结果搜到了不明觉历的Lucas定理,据说是专门解决C(n, m)%p的,当中p是质数。

    Lucas定理叙述例如以下:

            数论Lucas定理是用来求 c(n,m) mod p的值,p是素数(从n取m组合。模上p)。
    描写叙述为:
    Lucas(n,m,p)=cm(n%p,m%p)* Lucas(n/p,m/p,p)
    Lucas(x,0,p)=1;
    本题中,让求的是,所以。n = p, 代入得 Lucas(n,m,p)  =   cm(n%p, m%p)* Lucas(n/p, m/p, p)
                                                                                                                 =    cm(n%p, p%p)* Lucas(n/p, p/p, p)
                                                                                                                 =    cm(n%p, 0)* Lucas(n/p, 1, p)
                                                                                                                 =    1 * Lucas(n/p, 1, p)
                                                                                                                 =    C(n/p, 1) % p 
    =    C(n/p, 1) % p 
    =    ( n/p ) % p





    AC代码:
    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    int main(){
    	freopen("in.txt", "r", stdin);
    	int n, t, p;
    	cin >> n;
    	while(n--){
    		cin >> t >> p;
    		cout << (t / p) % p << endl;
     	}
     	return 0;
    }



  • 相关阅读:
    转:理想主义终结年代的七种兵器
    基础地理空间框架
    coldplay 全集下载
    S40 用google sync同步通讯录(转)
    分享一个关于Steve Jobs演讲的分析
    转:我们时代的思想责任与尊严
    nginx 视频流
    vue 使用路由重复跳转同一页面
    批处理文件编写
    ZBB – ZERO Bug Bounce
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7246904.html
Copyright © 2020-2023  润新知