Prepared for New Acmer

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 6516    Accepted Submission(s): 2450
Problem Description
集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,眼下为止,对大家的表现相当惬意,首先是绝大部分队员的训练积极性非常高,其次,都非常遵守集训纪律,最后,老队员也起到了非常好的带头作用,这里特别感谢为这次DP专题练习赛提供题目和測试数据的集训队队长xhd同学.



特别高兴的是,尾随集训队训练的一批新队员表现很好,进步也比較显著,特别是训练态度大大超出我的预期,我敢说,假设各位能如此坚持下去,绝对前途无量!



考虑到新队员还没有经过系统训练,我这里特别加入一道简单题:

给定三个正整数A,B和C(A,B,C<=1000000),求A^B mod C的结果.



希望各位都能体会到比赛中AC的快乐,绝对的量身定制,非常高的待遇哟,呵呵...
 
Input
输入数据首先包括一个正整数N,表示測试实例的个数,然后是N行数据,每行包括三个正整数A,B,C。
 
Output
对每一个測试实例请输出计算后的结果,每一个实例的输出占一行。
 
Sample Input
3
2 3 4
3 3 5
4 4 6
 
Sample Output
0
2
4
 
Author
lcy
 
Source

题目分析:
求解这道题要先知道这个公式,(a*a)%c=((a%c)*(a%c))%c……公式1。



然后用降幂法,举样例详细说吧,



3^8=3^4*3^4=(3^2*3^2)*(3^2*3^2)=((3*3)*(3*3))*((3*3)*(3*3)),假设要求3^8%5,先求得3%5,

依据公式1就能依次求得3^2%5,3^4%5,3^8%5,这就是一个除2降幂的过程。



要注意的是某一次除2降幂可能幂变成奇数,这时要先拿出一个再降幂,

比方3^10=3^5*3^5(幂为5,是奇数)=(3^2*3^2*3)*(3^2*3^2*3)=……
摘自:
心得:
受益匪浅,学到东西了!
代码例如以下:
#include<stdio.h>
int main()
{
int i,n,a,b,c;
scanf("%d",&n);
while(n--)
{
__int64 temp,sum;
scanf("%d%d%d",&a,&b,&c);
sum=a%c;
temp=1;
while(b>1)//由于起初的时候,已经是a%c了所以已经是一次方了
{
if(b&1)//奇数的话,单独拉出来
{
temp*=sum;//temp用来存储奇数情况下的全部的乘积
temp%=c;
b--;//单独拉出来,次数减一
}
else
{
sum*=sum;//降幂法
sum%=c;
b/=2;//由于是变化后乘方,所以次方数减半
}
}
printf("%I64d\n",sum*temp%c);
}
return 0;
}

hdu 1420(Prepared for New Acmer)(中国剩余定理)(降幂法)的更多相关文章

  1. HDU 1420 Prepared for New Acmer【中国剩余定理】

    /* 解决问题的思路:中国剩余定理,还要注意的是数据的类型,要使用__int64位 解决人:lingnichong 解决时间:2014-08-30 06:56:35 :简单题 */ Prepared ...

  2. HDU(1420)Prepared for New Acmer(JAVA语言)【快速幂模板】

    思路:快速幂裸题. //注意用long,否则会超范围 Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相 ...

  3. hdu 1573 X问题【扩展中国剩余定理】

    扩展中国剩余定理的板子,合并完之后算一下范围内能取几个值即可(记得去掉0) #include<iostream> #include<cstdio> #include<cm ...

  4. HDOJ 1420 Prepared for New Acmer(DP)

    Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相当满意,首先是绝大部分队员的训练积极性很高,其次,都很 ...

  5. hdu 1370 || poj 1006 简单的中国剩余定理或者暴力

    Biorhythms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Probl ...

  6. HDU 5768 Lucky7 (中国剩余定理 + 容斥 + 快速乘法)

    Lucky7 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 Description When ?? was born, seven crow ...

  7. HDU 5768 Lucky7 (中国剩余定理+容斥)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 给你n个同余方程组,然后给你l,r,问你l,r中有多少数%7=0且%ai != bi. 比较明显 ...

  8. 【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意: T组数据,求L~R中满足:1.是7的倍数,2.对n个素数有 %pi!=ai  的数 ...

  9. 【中国剩余定理】POJ 1006 & HDU 1370 Biorhythms

    题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...

随机推荐

  1. windows7 iis安装与配置

    方法/步骤   一. Windows 7环境下的安装配置 打开控制面板——程序和功能   点击左侧“打开或关闭Windows功能”,弹出Windows功能 对话框.   在Windows功能对话框中进 ...

  2. jquery怎么在点击li标签之后添加一个在class,点击下一个li时删除上一个class?

    思路:点击当前li元素后是用removeClass()删除所有兄弟元素(使用siblings()获取)的class样式,然后使用addClass()为当前li添加class. 具体演示如下: 1.HT ...

  3. Common lisp菜鸟指南(译)

    Common lisp菜鸟指南(译) Common lisp菜鸟指南(译)

  4. 14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁

    14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁 这个章节建立关于死锁的概念信息,它解释如何组织数据库操作来减少死锁和随后的错误处理: D ...

  5. Python逐块读取大文件行数的代码 - 为程序员服务

    Python逐块读取大文件行数的代码 - 为程序员服务 python数文件行数最简单的方法是使用enumerate方法,但是如果文件很大的话,这个方法就有点慢了,我们可以逐块的读取文件的内容,然后按块 ...

  6. How to write simple HTTP proxy with Boost.Asio

    How to write simple HTTP proxy with Boost.Asio How to write simple HTTP proxy with Boost.Asio Russia ...

  7. 关于java 日文输出信息到 Jenkins Console Output 乱码问题

    java 将从读取到的外部调用程序的带有日文字符的输出信息 输出到Jenkins 上的Console Output 上乱码. 现象分析: Jenkins 上可以将日文正常显示出来,但是读取外部程序的输 ...

  8. Company Story | Vistaprint

    Company Story | Vistaprint Company Story A Gap in the Small Business Marketplace It’s rare that a hi ...

  9. projecteuler----&gt;problem=9----Special Pythagorean triplet

    title: A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 + b2 = c2 For e ...

  10. Windows 8.1下 MySQL绿色版安装配置与使用

    原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...