Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu

Description

Ocean从影视城回来后,吃了一个放大果实(恶魔果实的一种),高呼:“海贼王に、俺はなる!”

Ocean每使用一次能力,就可以将一个物品的价值放大$x$倍(原价值乘以$x$)。 
但是哪有这么好的事情? 
物品的价值是有限度的,姑且认为物品的价值上界为$M$。 
如果经过放大后物品的价值大于或者等于$M$,那么该物品价值将恒定以$M$的值减少,直到小于$M$为止。 
比如价值为$19,M = 6$:要减少$3$次$M$,即$19 - 6 = 13,13 - 6 = 7,7 - 6 = 1 < 6。$

假设物品初始的价值为$1$,Ocean会对该物品使用$N$次能力。 
他想知道经过$N$次放大之后,物品的价值是否大于$Y$?

Input

第一行输入一个整数$T$,代表有$T$组测试数据。 
每组数据依次输入四个整数$x,N,M,Y,$分别代表上面提到的信息。

注:$1 <= T <= 100000,1 <= x, N <= 10^9,1 <= M <= 10^9,|Y| <= 2 * 10^9。$

Output

若最后物品的价值大于$Y$请输出"YES",反之输出"NO"。(输出结果不带引号)

Sample Input

2
2 3 5 4
3 10 7 3

Sample Output

NO
YES

Hint

对第一组测试数据,

第一次放大后物品价值为$2,2 < 5,$不减少。

第二次放大后物品价值为$4,4 < 5,$不减少。

第三次放大后物品价值为$8,8 > 5,$每次减少$5$,则$8 - 5 = 3 < 5$合法。

最后价值为$3,3 < 4。$

真的不懂当时自己明明知道方法,但是就是提交不上去,还是自己的基础知识没有掌握好。同余定理没有掌握好。

  

 #include<stdio.h>

 int main()
{
int T;
scanf("%d",&T);
while(T--)
{
long long t,x;
int n,m,y;
t=;
scanf("%lld%d%d%d",&x,&n,&m,&y);
while(n!=)
{
if(n%) //这里的快速幂知识,和我记的模板并不一样,他是
t=(t*x)%m; //经过了自己的理解了的模板,我现在还没有到这一步
x=(x*x)%m;    
n=n/; //用到了同余定理
}
if(t>y) printf("YES\n");
else printf("NO\n");
}
return ;
}

同余定理的另一种表述方式

如果经过放大后物品的价值大于或者等于$M$,那么该物品价值将恒定以$M$的值减少,直到小于$M$为止。 
比如价值为$19,M = 6$:要减少$3$次$M$,即$19 - 6 = 13,13 - 6 = 7,7 - 6 = 1 < 6。$

J - Judge(快速幂)(同余定理)的更多相关文章

  1. 洛谷 P1226 【模板】快速幂||取余运算

    题目链接 https://www.luogu.org/problemnew/show/P1226 题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 ...

  2. hdu1061Rightmost Digit(快速幂取余)

    Rightmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. LightOJ - 1282 - Leading and Trailing(数学技巧,快速幂取余)

    链接: https://vjudge.net/problem/LightOJ-1282 题意: You are given two integers: n and k, your task is to ...

  4. 洛谷P1226 【模板】快速幂||取余运算

    题目描述 输入b,p,k的值,求b^p mod k的值.其中b,p,k*k为长整型数. 输入输出格式 输入格式: 三个整数b,p,k. 输出格式: 输出“b^p mod k=s” s为运算结果 S1: ...

  5. LuoguP1226 【模板】快速幂||取余运算

    题目链接:https://www.luogu.org/problemnew/show/P1226 第一次学快速幂,将别人对快速幂原理的解释简要概括一下: 计算a^b时,直接乘的话计算次数为b,而快速幂 ...

  6. hdu4767_Bell_矩阵快速幂+中国剩余定理

    2013长春赛区网络赛的1009题 比赛的时候这道题英勇的挂掉了,原因是写错了一个系数,有时候粗心比脑残更可怕 本题是关于Bell数,关于Bell数的详情请见维基:http://en.wikipedi ...

  7. 题解 P1226 【【模板】快速幂||取余运算】

    1.题目分析 原题 本题在于快速幂的使用,以及对long long的应用问题. 2.解题思路 快速幂 求幂常见用法: int pow(int a,int b) { int ans; for(int i ...

  8. [每日一题2020.06.15]P1226 【模板】快速幂取余运算

    我是题目 快速幂就是快速求 \(a^b\)的一种算法 快速幂 思想 : 比如我要求 \(6^9\) 首先将幂转化为二进制形式 : \[6^9 = 6^{1001} \tag{1} \] 可以得到 : ...

  9. 【模板】快速幂&取余运算

    输入\(b\),\(p\),\(k\)的值,求\(b^p mod k\)的值.其中\(b\),\(p\),\(k^2\)为长整型数. 1.普通做法 \(print\) \(pow(b,p)\)\(mo ...

随机推荐

  1. ADO 缓存更新

    if (ADOQuery1->UpdateStatus() == usUnmodified)   return; ADOQuery1->UpdateBatch(arAll); Update ...

  2. javax.persistence.RollbackException: Error while committing the transaction

    the valid jpa update entity code gives the exception below in the case of  wrong dependency( org.hib ...

  3. quicker+.em SourceInsight 宏加强版制作

    这两天苦于新建的文件每次都要手动添加文件头,新建的函数每次都要手动添加函数说明,连.h也要手动生成.于是乎,上网搜了搜,发现了lushengwen写的一个神器:quicker.em .好家伙,有了这个 ...

  4. HTTP协议入门基础

    HTTP--Hyper Text Transfer Protocol,超文本传输协议,是一种建立在TCP上的无状态连接. 整个基本的工作流程是 :客户端发送一个HTTP请求,说明客户端想要访问的资源和 ...

  5. HTTP请求出现405状态码method not allowed的解决办法

    httppost请求目标网站出现405状态码, 原因为 Apache.Nginx.IIS等绝大多数web服务器,都不允许静态文件响应POST请求所以将post请求改为get请求即可

  6. Window Application has "update" key words

    Error Qt Creater:console error:Failed to start program. Path or permissions wrong? Description 在使用Qt ...

  7. Oracle ADF 创建序列

    双击VO,打开Attribute 标签页在弹出的窗口中选择Default Value Type 为“Expression”, value 的值为:(new oracle.jbo.server.Sequ ...

  8. 玩转Sketch,不容错过的5大实用插件推荐

    在之前的文章中,笔者为大家介绍了Sketch 的入门教程.实用技巧和资源集锦,相信大家对Sketch已经有了初步的了解和认识.除了基础的矢量设计功能以外,插件更是让Sketch保持强大的独门秘籍.Sk ...

  9. IRC聊天指南

    参考https://www.cnblogs.com/fzzl/archive/2011/12/26/2302637.html

  10. CentOS 7如何开放其它的端口,比如8080

    CentOS 7如何开放其它的端口,比如8080 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop ...