字串現在有好多種砝碼,他們的重量是 w^0,w^1,w^2,... 每種各乙個。問用這些砝碼能不能表示乙個重量為m的東西。
多組測試資料。第一行有兩個整數w,m (3 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9)。
如果能,輸出yes,否則輸出no。
3 73 12
noyes
題解:這道題就是簡單的貪心演算法的題,只要有勇氣做下去就能ac;
code:#include #include using namespace std;
long long int a[100000000];//定義陣列用來存不同指數冪的數,定小了會ce,所以乾脆定乙個特別大的陣列;
int main()
//這裡注意最後的a[i]是乙個比m大的數哦;
//這裡是貪心演算法的核心,每次都減去不大於m的w的i次冪,判斷最後能不能是m恰好為0;
while(m&&i)//跳出條件:m恰好為0,即滿足條件,或者i變成0依舊沒能使m為0,即不能滿足條件;
if(m==0)
puts("yes");//puts語句自帶『\n』哦;
else
puts("no");
}return 0;
}
補充:在函式以外定義陣列一般最大只能定義到1000,000,000左右,函式內最大定義到60,000;
POJ 1837 天平問題
主要參考 題目 題意 有乙個天平,左臂右臂各長15,然後給出n,m,n代表有幾個掛鉤,掛鉤給出負數代表在左臂的距離,正數則在右臂 m代表有m個砝碼,要你求出使得這個天平保持平衡有幾種方法,要求所有砝碼全部使用完 思路 首先我們先要明確dp陣列的作用,dp i j 中,i為放置的砝碼數量,j為平衡狀態...
UVa 1354天平難題
參考 主要思想 列舉二叉樹 計算寬度 如果只有1個葉子,直接輸出寬度為0 否則,從第2個 一定有根節點 1 開始一層一層挨個列舉編號為num的節點的值,直到用完所有w。計算寬度時,從最後乙個填入的節點往前計算以它為中心的左右的長度,左邊為負,右邊為正,一直算到根節點 num 1 r 1 l 1 就是...
codevs 2866 天平系統2
乙個天平,砝碼分別為1g 3g 9g 27g 6561g,每個砝碼只有乙個,要稱重的物品放在天平的左側,而砝碼允許放在天平的左右兩側。已知乙個物品的重量,問如何稱重?試程式設計解決。乙個重量n 所使用的砝碼重量,按從大到小的順序輸出。其中與物品異側的砝碼用正號表示,與物品同側的砝碼用負號表示。第乙個...