hdu 1420(Prepared for New Acmer)(中国剩余定理)(降幂法)
Prepared for New Acmer
特别高兴的是,尾随集训队训练的一批新队员表现很好,进步也比較显著,特别是训练态度大大超出我的预期,我敢说,假设各位能如此坚持下去,绝对前途无量!
考虑到新队员还没有经过系统训练,我这里特别加入一道简单题:
给定三个正整数A,B和C(A,B,C<=1000000),求A^B mod C的结果.
希望各位都能体会到比赛中AC的快乐,绝对的量身定制,非常高的待遇哟,呵呵...
3
2 3 4
3 3 5
4 4 6
0
2
4
然后用降幂法,举样例详细说吧,
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)(中国剩余定理)(降幂法)的更多相关文章
- HDU 1420 Prepared for New Acmer【中国剩余定理】
/* 解决问题的思路:中国剩余定理,还要注意的是数据的类型,要使用__int64位 解决人:lingnichong 解决时间:2014-08-30 06:56:35 :简单题 */ Prepared ...
- HDU(1420)Prepared for New Acmer(JAVA语言)【快速幂模板】
思路:快速幂裸题. //注意用long,否则会超范围 Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相 ...
- hdu 1573 X问题【扩展中国剩余定理】
扩展中国剩余定理的板子,合并完之后算一下范围内能取几个值即可(记得去掉0) #include<iostream> #include<cstdio> #include<cm ...
- HDOJ 1420 Prepared for New Acmer(DP)
Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相当满意,首先是绝大部分队员的训练积极性很高,其次,都很 ...
- hdu 1370 || poj 1006 简单的中国剩余定理或者暴力
Biorhythms Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Probl ...
- HDU 5768 Lucky7 (中国剩余定理 + 容斥 + 快速乘法)
Lucky7 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 Description When ?? was born, seven crow ...
- HDU 5768 Lucky7 (中国剩余定理+容斥)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5768 给你n个同余方程组,然后给你l,r,问你l,r中有多少数%7=0且%ai != bi. 比较明显 ...
- 【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5768 题目大意: T组数据,求L~R中满足:1.是7的倍数,2.对n个素数有 %pi!=ai 的数 ...
- 【中国剩余定理】POJ 1006 & HDU 1370 Biorhythms
题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...
随机推荐
- Mysql 和Oracle rows 区别
mysql> explain select t1.* from t2 ,t1 where t2.id=t1.id and t2.id<3;\ +----+-------------+--- ...
- C 编程最佳实践(书写风格)
简介本文是为了满足开发人员的需要而写的.我们总结了一套指南,无论作为开发人员还是顾问,这些指南多年来一直都很好地指导着我们,我们把它们作为建议提供给您,希望对您的工作有所帮助.您也许不赞同其中的某些指 ...
- JSTL分割字符 fn:split()
<%@ page language="java" contentType="text/html; charset=UTF-8"%><%@ ta ...
- 建立地方Jekyll周边环境
近期使用github建立一个博客,只是要了解markdown语法,因为markdown后写的不是立即可见.所以,每一个成品都要经过在线调试,在线调试已经上线的文章,每次上线有反复git add, gi ...
- PHP中如何实现 “在页面中一边执行一边输出” 的效果
<?php set_time_limit(0); //在有关数据库的大量数据的时候,可以将其设置为0,表示无限制. ob_end_clean(); //在循环输出前,要关闭 ...
- Android开源项目大全 - 工具类
主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...
- poj 1991 Turning in Homework dp
这个可以证明必须从两边的任务开始交起,因为中间交的任务可以后面经过的时候再交,所以就变成了一个n*n的dp. #include <iostream> #include <cstdio ...
- CV和Resume的区别(转)
常常有人把CV和Resume混起来称为“简历”,其实精确而言,CV应该是“履历”,Resume才是简历.Resume概述了有关的教育准备和经历,是对经验技能的摘要:curriculum vitae则集 ...
- 鸟哥Linux私房菜知识点总结6到7章
近期翻看了一本<鸟哥的Linux私房菜>.这是一本基础的书,万丈高楼平地起.会的不多但能够学.这是我整理的一些知识点.尽管非常基础.希望和大家共同交流. 第6章主机规划与磁盘分区 1.在进 ...
- 国内国外MD5在线解密站点
-http://www.cmd5.com/english.aspx (457,354,352,282) - http://www.md5crack.com - http://www.hashcheck ...