1. 程式人生 > >HDU 2035 人見人愛A^B(同餘基本性質)

HDU 2035 人見人愛A^B(同餘基本性質)

  • 原題連結:Here!

  • 思路:
    可以利用同餘的基本性質 ab ≡ (a%m)(b%m) (mod m) ,也非常好證明。
     設 a = k1*m + c1 , b = k2*m + c2 ( k1,k2 為非負整數 )
    ab = k1*k2*m*m + m*(k1*c2+k2*c1) + c1*c2
    ab mod m = c1*c2
    a mod m = c1 , b mod m = c2 
    因此 ab ≡ (a%m)(b%m) (mod m) 

  • 程式碼:
    /*
    	Note:
    		利用了同餘的基本性質
    		ab ≡(a%m)(b%m) (mod m) 
    
    */
    #include<bits/stdc++.h>
    using namespace std;
    
    int solve(int a,int b,int m){
    	int ans = 1;
    	for(int i=1;i<=b;i++){
    		ans = ans*a%m;
    	}
    	return ans;
    }
    
    int main(){
    	int a,b,m; 
    	while(cin>>a>>b && a+b){
    		cout<< solve(a,b,1000) <<endl;
    	}
    	return 0;
    }


相關推薦

HDU 2035 A^B基本性質

原題連結:Here!思路:可以利用同餘的基本性質 ab ≡ (a%m)(b%m) (mod m) ,也非常好證明。  設 a = k1*m + c1 , b = k2*m + c2 ( k1,k2

HDU 2035 A^B快速冪取模

人見人愛A^B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su

HDU 6071 Lazy Running最短路

簡述題意:給你一個由四個節點組成的環,相鄰兩點間可達,求從節點2出發,回到節點2的不小於k的最短路徑的長度。 演算法:同餘最短路 難度:NOIP 題解: 假設我們將任意一條長度大於k的迴路(從2出發回到2)為可行路徑,那麼任意一條可行路徑加上2w一定還是可行路徑,所有可行方案中,

hdu 2035 A^B

seve 程序 ron esc 組成 pid tdi other nbsp Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi

HDU-2035A^B

HDU-2035人見人愛A^B 題目: 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則表示輸入資料的結束,不做處理。 Out

hdu 2035 A^B快速冪入門

人見人愛A^B                                      Time Limit: 2000/1000 MS (Java/Others)    Memory Limit

HDU 2035 A^B水~

Description 求A^B的最後三位數表示的整數。 Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=

HDU 2035 A^B 快速冪取模

分析: 標配快速冪。注意取模別溢位即可。 程式碼如下: #include <stdio.h> // 快速冪非遞迴實現(迴圈+位運算) int power2(int a, int n

hdu 2035 A^B快速冪

Problem Description 求A^B的最後三位數表示的整數。 說明:A^B的含義是“A的B次方” Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1<=A,B<=10000),如果A=0, B=0,則

hdu 2034 A-B

查看 accep 行數 color 還記得 accept con esc 結果 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi

HDU - A-B

http://acm.hdu.edu.cn/showproblem.php?pid=2034 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth

HDU - A+B

http://acm.hdu.edu.cn/showproblem.php?pid=2033 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth

HDU-2033-A+B水水水

HDOJ上面已經有10來道A+B的題目了,相信這些題目曾經是大家的最愛,希望今天的這個A+B能給大家帶來好運,也希望這個題目能喚起大家對ACM曾經的熱愛。 這個題目的A和B不是簡單的整數,而是兩個時間,A和B 都是由3個整陣列成,分別表示時分秒,比如,假設A為34 45 56

HDU-2034-A-B(外排)

人見人愛A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su

2035 ——A^B

#include <iostream> using namespace std; int main() { int n,m; while(cin>>n>>m) { int c=1;

HDOJ 2035 A^B(快速冪求模

Description 求A^B的最後三位數表示的整數。  說明:A^B的含義是“A的B次方”  Input 輸入資料包含多個測試例項,每個例項佔一行,由兩個正整數A和B組成(1&

2035 A^B

人見人愛A^B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 21701    Accepted Sub

hdu 2034 A-B java

問題: 題目要求排序之前沒將a[]陣列排序,導致一直不通過。 本題採用了String儲存需要的陣列元素,輸出方便,也比較靈活。 人見人愛A-B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3

杭電 2035 ( A^B ) java

import java.util.Scanner; import java.math.BigInteger; public class Main { public static void

【杭電2035A^B

#include<stdio.h> __int64 quick(int a,int b) { __int64 ans=1,base=a; __int64 t=0;