51nod1449 砝碼稱重

2021-08-10 18:16:22 字數 634 閱讀 2131

現在有好多種砝碼,他們的重量是 w0,w1,w2,… 每種各乙個。問用這些砝碼能不能表示乙個重量為m的東西。

樣例解釋:可以將重物和3放到乙個托盤中,9和1放到另外乙個托盤中。

單組測試資料。

第一行有兩個整數w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。

如果能,輸出yes,否則輸出no。

3 7yes

發現網上的很多題解都寫的不夠好,也可能是我智商太低看不懂,總之想了很久才想明白。

考慮把m轉換成w進製,假設m放在左盤,那麼m的質量就等於右盤砝碼質量減去左盤砝碼,而砝碼質量很顯然只由0,1組成(w進製下),那麼對應地,相減所得的m只會由0和1和w-1組成。

考慮w-1的情況,這種情況在減法時是需要借位的,那麼後一位只能由w-1,或者0組成,因此這種情況需要特殊處理一下。我寫的時候把m加了一,這樣子就可以納入到前面的情況,比較好做。

#include 

#include

#include

int w,m;

using

namespace

std;

int main()

}printf("yes\n");

}

51nod 1449 砝碼稱重

好題。如果答案為yes,則m可以表示為 m a 0 w 0 a 1 w 1 如果等號左右兩邊同時減去a 0 w 0,即1 1或者0,等號右邊必然是w的倍數,也就是說,等號左邊也必然是w的倍數。也就是說,如果m m 1或者m 1其中有乙個為w的倍數,那麼才能使得等式成立。必要不充分條件 等式左右兩邊同...

51nod 1449 砝碼稱重

現在有好多種砝碼,他們的重量是 w0,w1,w2,每種各乙個。問用這些砝碼能不能表示乙個重量為m的東西。單組測試資料。第一行有兩個整數w,m 2 w 10 9,1 m 10 9 如果能,輸出yes,否則輸出no。input 3 7 output yes 樣例解釋 樣例解釋 可以將重物和3放到乙個托盤...

51nod 1449 砝碼稱重

給培訓找貪心題的時候看到的,一道和貪心沒任何關係的小水題。首先如果有解,那麼有 i wai iwb i m iw ai iwbi m 容易發現若 m wx,w 1 mw x,w 1 那麼將等式兩邊除以wx w x後,左式必然 因為有解 將剩餘乙個 1 1,將其移至右邊將使得w m 1 w m 1 或...