用來作弊的藥水(快速冪)

2021-08-17 18:24:22 字數 1541 閱讀 8643

在乙個風雨交加的夜晚,來自異世界的不願透露姓名的tmk同學獲得了兩種超強藥水a、b。根據說明書,tmk知道了這兩種藥水的作用:

(1)藥水a能使人的生命值提高,每飲用1個單位能使他生命值變成原來的x倍,即每飲用p個單位能使他的生命值變成原來的x^p(x的p次方)倍。

(2)藥水b能使人的能量值提高,每飲用1個單位能使他能量值變成原來的y倍,即每飲用q個單位能使他的能量值變成原來的y^q(y的q次方)倍。

於是tmk迫不及待地喝下了所有的a個單位的藥水a和b個單位的藥水b,他立馬體會到了自己能力的超強變化,然後他看了接下來的說明書:

藥水a和藥水b能互相抑制對方的負面效果,一旦生命值提公升的倍數和能量值提公升的倍數不相等,那麼在五個小時後將會發生非常嚴重的後果。

於是tmk同學慌了,他想知道自己提公升的生命值和能量值的倍數是否相等,由於他非常慌張,所以他把計算的重任交給你了。

作為埃森哲公司的一員,你覺得這個問題很簡單,這得益於埃森哲公司分享知識的文化。

分享知識已成為埃森哲源遠流長的文化。

埃森哲公司在幫助客戶進行行之有效的知識管理的同時,它的管理層在其內部也進行了成功的知識管理的實踐。如今,在埃森哲,分享知識已成為其源遠流長的文化。在很大程度上,埃森哲公司的成功得益於其強大的知識管理系統。

第一行乙個整數t,代表有t組資料。(1<=t<=5000)

每組資料僅一行,包含四個整數x,a,y,b,意義為題目描述。(1<=x,a,y,b<=10^9)

每組資料輸出一行"yes"或"no"(不包含雙引號),表示tmk提公升的生命值和能量值的倍數是否相等,相等為"yes",不相等為"no"。

示例1

4

2 20 4 10

20 20 20 20

20 21 21 20

32768 32768 1048576 24576

yes

yesno

yes

快速冪.要注意的是如果只對乙個很小的數a取餘,那麼取餘的結果分布在(0,n-1)之間,那麼這兩個數有很大概率是相等的。

所以我們應該對乙個很大的數取餘,或者對多個數取餘,如果這兩個數取餘的結果相等,那麼我們就可以認為他們2兩個是相等的。

這裡我選擇對乙個很大的數取餘;

**如下:

#include#define ll long long

const int mod =1e9+3;

ll fastpower(ll a,ll b,int mod);

/*示例1輸入4

2 20 4 10

20 20 20 20

20 21 21 20

32768 32768 1048576 24576

輸出yes

yesno

yes*/

int main()

return 0;

} ll fastpower(ll a,ll b,int mod)

return result;

}

用來作弊的藥水

題目描述 在乙個風雨交加的夜晚,來自異世界的不願透露姓名的tmk同學獲得了兩種超強藥水a b。根據說明書,tmk知道了這兩種藥水的作用 1 藥水a能使人的生命值提高,每飲用1個單位能使他生命值變成原來的x倍,即每飲用p個單位能使他的生命值變成原來的x p x的p次方 倍。2 藥水b能使人的能量值提高...

用來作弊的藥水

在乙個風雨交加的夜晚,來自異世界的不願透露姓名的tmk同學獲得了兩種超強藥水a b。根據說明書,tmk知道了這兩種藥水的作用 1 藥水a能使人的生命值提高,每飲用1個單位能使他生命值變成原來的x倍,即每飲用p個單位能使他的生命值變成原來的x p x的p次方 倍。2 藥水b能使人的能量值提高,每飲用1...

L 用來作弊的藥水

l 用來作弊的藥水 在乙個風雨交加的夜晚,來自異世界的不願透露姓名的tmk同學獲得了兩種超強藥水a b。根據說明書,tmk知道了這兩種藥水的作用 1 藥水a能使人的生命值提高,每飲用1個單位能使他生命值變成原來的x倍,即每飲用p個單位能使他的生命值變成原來的x p x的p次方 倍。2 藥水b能使人的...