時間限制: 1 sec
記憶體限制: 128 mb
提交: 1011
解決: 125
統計吃了乙個放大果實(惡魔果實的一種),高呼:「
海賊王に、俺はなる!」
ocean每使用一次能力,就可以將乙個物品的價值放大$x$倍(原價值乘以$x$)。
但是哪有這麼好的事情?
物品的價值是有限度的,姑且認為物品的價值上界為$m$。
如果經過放大後物品的價值大於或者等於$m$,那麼該物品價值將恆定以$m$的值減少,直到小於$m$為止。
比如價值為$19,m = 6$:要減少$3$次$m$,即$19 - 6 = 13,13 - 6 = 7,7 - 6 = 1 < 6。$
假設物品初始的價值為$1$,ocean會對該物品使用$n$次能力。
他想知道經過$n$次放大之後,物品的價值是否大於$y$?
第一行輸入乙個整數$t$,代表有$t$組測試資料。
每組資料依次輸入四個整數$x,n,m,y,$分別代表上面提到的資訊。
注:$1 <= t <= 100000,1 <= x, n <= 10^9,1 <= m <= 10^9,|y| <= 2 * 10^9。$
若最後物品的價值大於$y$請輸出"yes",反之輸出"no"。(輸出結果不帶引號)
22 3 5 4
3 10 7 3
no對第一組測試資料,yes
第一次放大後物品價值為$2,2 < 5,$不減少。
第二次放大後物品價值為$4,4 < 5,$不減少。
第三次放大後物品價值為$8,8 > 5,$每次減少$5$,則$8 - 5 = 3 < 5$合法。
最後價值為$3,3 < 4。$
ps:在這裡給出快速冪的模板**:
int pow2(int a,int b)
return r;
}
取餘情況時:
int result(int a,int b,int m)
return d;
}
#include #include using namespace std;
long long x;
int main()
if(k>y)
printf("yes\n");
else
printf("no\n");
} return 0;
}
同餘定理 快速冪
同餘定理 a b c a c b c a c b c c 證明 前一種 a b a c b 為c的 倍數即可 提取b得到 b a a c 易知其為 c的 倍數 得證 一 一般的冪次取餘 主要利用 a b c a c b c ll normal mod ll a,ll b,ll c return an...
快速冪及同餘定理
同餘定理 給定乙個正整數m,如果兩個整數a和b滿足 a b 能夠被m整除,即 a b m得到乙個整數,那麼就稱整數a與b對模m同餘,記作a b mod m 性質 1傳遞性 若a b mod m b c mod m 則a c mod m 2同余式線性運算 若a b mod m c d mod m 則a...
數數 (數學)(快速冪 同餘定理)
數數 問題描述 小 star 還不會數數。有一天他看到了一張奇怪的數表,上面的每乙個數各自都由相同數字構成,比如 11111111 66666 於是他想自己從 1 慢慢數到這個數字。多少 star 有個很不好的習慣,每數到一定個數就會從頭開始數起。現在請你幫忙求出,他最後數出來的數是多少。輸入 第一...