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. 实战zabbix3.0.2 使用percona mysql插件监控mysql5.7

    1.系统环境 [root@shard0 templates]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 ...

  2. App登录状态维持

    转载地址:http://www.jianshu.com/p/4b6b04244773 目前APP大都支持长登录,就是用户登录一次后,如果用户没有主动注销.清除APP缓存数据或卸载APP,就在一段时间内 ...

  3. 获取select值及判断是否是数字

    代码片段 <div class="container-fluid"> <div class="row"> <div class=& ...

  4. hive 建表导入数据

    1. hive> create table wyp > (id int, name string, > age int, tel string) > ROW FORMAT DE ...

  5. Python运维开发基础06-语法基础

    上节作业回顾 (讲解+温习120分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 添加商家入口和用户入口并实现物 ...

  6. Information Retrieval II

    [Information Retrieval II] 搜索引擎分类: 1.目录式搜索引擎. 2.全文搜索引擎. 3.元搜索引擎(Meta-Search Engine). 搜索引擎的4个阶段:下载(cr ...

  7. mybatis框架入门程序:演示通过mybatis实现数据库的删除操作

    1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.删除用户的映射文件: <!-- ...

  8. 从YouTube改版看“移动优先”——8个移动优先网站设计案例赏析

    2011年,Luke Wroblewski大神提出了移动优先的设计理念.在当时看来这无疑是一个打破行业常规的新型设计原则.而在移动互联网大行其道的今天,谁遵守移动优先的设计理念,设计出最好的移动端网站 ...

  9. Javascript变长参数和默认参数

    /* javascript 变长参数 * 实参少于形参: 剩下的参数如果没有默认值,将解析为undefined * 实参多于形参: 剩下的实参可以通过 "实参对象"-argumen ...

  10. ZOJ3768 Continuous Login 2017-04-14 12:47 45人阅读 评论(0) 收藏

    Continuous Login Time Limit: 2 Seconds      Memory Limit: 131072 KB      Special Judge Pierre is rec ...