hdu1420 Prepared for New Acmer 简单数学
2013-08-07 12:48
363 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1420
简单数学题
第一次wa在可能和会出现取模后值为负数的情况。
只要会一个数论上的简单公式(a*b)%c=((a%c)*(b%c))%c 其中*可以为加,减,乘,除。计算时保留中间结果可以避免重复,极大的提升时间效率。
我的代码运行时间为0ms
代码如下:
View Code
简单数学题
第一次wa在可能和会出现取模后值为负数的情况。
只要会一个数论上的简单公式(a*b)%c=((a%c)*(b%c))%c 其中*可以为加,减,乘,除。计算时保留中间结果可以避免重复,极大的提升时间效率。
我的代码运行时间为0ms
代码如下:
#include<iostream> #include<cmath> #include<cstdlib> #include<cstdio> using namespace std; long long int a,b,c; int Mulite(long long int a,long long int b) { if(b==1) return a%c; if(b%2==0){ long long int temp=((Mulite(a,b/2))%c+c)%c; return ((temp*temp)%c+c)%c; } else if(b%2) { long long int temp2=(Mulite(a,b/2)%c+c)%c; long long int temp3=((temp2*(a%c))%c+c)%c; return((temp2*temp3)%c+c)%c; } } int main() { int n; scanf("%d",&n); while(n--) { scanf("%lld%lld%lld",&a,&b,&c); cout<<Mulite(a,b); cout<<endl; } return 0; }
View Code
相关文章推荐
- HDU 1420 Prepared for New Acmer(数学题)
- hdu-oj 1420 Prepared for New Acmer
- hdu 1420 Prepared for New Acmer
- hdu 1420 Prepared for New Acmer(快速幂入门)
- hdu 1420 Prepared for New Acmer
- HDU 1420 Prepared for New Acmer(快速幂取模)
- HDU 1420 Prepared for New Acmer(快速幂裸题)
- HDU 1420 Prepared for New Acmer
- hdu_1420 Prepared for New Acmer
- HDU 1420 Prepared for New Acmer
- HDU 1420--Prepared for New Acmer【快速幂取模】
- hdu 1420 Prepared for New Acmer(矩阵快速幂模板)
- HDU 1420 Prepared for New Acmer
- hdu 1420(Prepared for New Acmer)(中国剩余定理)(降幂法)
- hdu1420 Prepared for New Acmer (a^i mod n)
- 【HDU】1420 Prepared for New Acmer(水题、取余)
- HDU 1420 Prepared for New Acmer【快速幂】
- HDU 1420 Prepared for New Acmer(快速幂)
- hdu 1420(Prepared for New Acmer)(中国剩余定理)(降幂法)
- hdu1420 Prepared for New Acmer ——快速幂