51nod 1449 砝碼稱重(進製思想 貪心)

2021-08-15 15:56:44 字數 818 閱讀 2468

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

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

單組測試資料。

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

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

3 7
yes
由於每種砝碼只有乙個,所以只有m能表示成只含有0、1的w進製數,才能稱.

如3 31,31可以表示成

(1011)3

(

1011)3

,可選取30

,31,

333 0,

31,3

3的砝碼放在左側托盤來稱重物,則用m/w來進行進製轉換,若m%w==0或者m%w==1肯定可以,但是當轉換到第i位時,m』 %w==w-1,我們可以通過在左側托盤新增乙個wi

w

i(m』=m』+1)的砝碼來進製,將餘數w-1轉化為0,進而繼續轉化.

#include 

#define io ios::sync_with_stdio(false);\

cin.tie(0);\

cout.tie(0);

using

namespace

std;

#define maxn 100007

int main()

}cout

<<"yes"

0;}

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放到乙個托盤...

51nod1449 砝碼稱重

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