喵喵的神∙数
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;
}


CPC23-4-K. 喵喵的神数 (数论 Lucas定理)的更多相关文章

  1. 51Nod 机器人走方格 V3 —— 卡特兰数、Lucas定理

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1120 题解: 1.看到这种题,马上就想到了卡特兰数.但卡特兰数 ...

  2. BZOJ 2754([SCOI2012]喵喵叫的星球-统计序列的后缀阵列中子序列出现次数)

    2754: [SCOI2012]喵喵叫的星球 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 805  Solved: 380 [id=2754&qu ...

  3. HTML5打造的炫酷本地音乐播放器-喵喵Player

    将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...

  4. 51nod 1120 机器人走方格 V3 卡特兰数 lucas定理

    N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 100 ...

  5. poj 1430 Binary Stirling Number 求斯特林数奇偶性 数形结合| 斯特林数奇偶性与组合数的关系+lucas定理 好题

    题目大意 求子集斯特林数\(\left\{\begin{matrix}n\\m\end{matrix}\right\}\%2\) 方法1 数形结合 推荐一篇超棒的博客by Sdchr 就是根据斯特林的 ...

  6. CPC23-4 K.喵喵的神·数

    题意:给出整数T,P,求c(T,P) mod P. 解法:用卢卡斯定理. 卢卡斯定理:解决c(n,m) mod p问题.Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p) ...

  7. uestc 1725 吴神数

    // 筛选法// 先求出 sqrt(1<<31)内的素数// 然后筛选出符合要求的数// 详情见代码注释// #pragma comment(linker, "/STACK:10 ...

  8. 分治与递归-找k个临近中位数的数

    问题描述:给定由n个互不相同的数组成的集合S以及正整数k≤n,试设计一个O(n)时间算法找出S中最接近S的中位数的k个数. 算法描述: 用线性时间选择实现的算法找到中位数 S’=除去中位数外的S S& ...

  9. 2016-2017学年第三次测试赛 习题E 林喵喵算术

    时间限制: 1 Sec  内存限制: 128 MB 提交: 70  解决: 25 提交统计讨论版 题目描述 给你两个八进制数,你需要在八进制计数法的情况下计算a-b. 如果结果为负数,你应该使用负号代 ...

随机推荐

  1. 条件变量(Condition Variable)详解

    条件变量(Condtion Variable)是在多线程程序中用来实现“等待->唤醒”逻辑常用的方法.举个简单的例子,应用程序A中包含两个线程t1和t2.t1需要在bool变量test_cond ...

  2. yii2实现WebService 使用 SoapDiscovery

    结合SoapDiscovery实现简单的WebService服务 1 修改php.ini文件 php_soap.dll extension=php_soap.dll 2 WebService 实现主要 ...

  3. #423 Div2 D

    #423 Div2 D 题意 构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出 ...

  4. 01背包【p1060】开心的金明

    Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要 ...

  5. Count of Smaller Numbers After Self -- LeetCode

    You are given an integer array nums and you have to return a new counts array. The counts array has ...

  6. POJ 2441 Arrange the Bulls(状压DP)

    [题目链接] http://poj.org/problem?id=2441 [题目大意] 每个人有过个喜欢的篮球场地,但是一个场地只能给一个人, 问所有人都有自己喜欢的场地的方案数. [题解] 状态S ...

  7. Maven创建多模块项目(包括依赖版本号的统一更新)

    0.多项目工程的文件夹及依赖关系 bus-core-api为公共项目,app-web-ui依赖bus-core-api,app-desktop-ui依赖bus-core-api 1.创建一个父Mave ...

  8. Spcomm 属性详解

    http://wenku.baidu.com/link?url=w53wCrhi_E33atqp0joeG029YO3H2z4Xy101oGbKqhG9bfWJQHSmcMi4q7l6xrS424St ...

  9. 查看linux内核版本及操作系统版本的命令

    一.查看内核版本命令: (1)[root@localhost ~]#cat/proc/version Linux version 2.6.18-238.el5 (mockbuild@x86-012.b ...

  10. DOTween教程

    参考自DOTween官方文档: DOTween起始上手起来很快,当然前提也是用心看一下哈. > 可以在Unity AssetStore下载得到. 使用方法: 准备: 在导入DOTween后,你需 ...