ABC 251 | D - At Most 3 (Contestant ver.)
阿新 • • 發佈:2022-06-06
題目描述
給定一個數\(W\),你需要準備一批砝碼以滿足以下條件:
- 砝碼的數量在\(1 \sim 300\)之間(包括\(1\)和\(300\)).
- 每個砝碼的重量不超過\(10^6\)
- 可以用至多\(3\)個不同砝碼錶示\(1 \sim W\)之間的每一個數(包括\(1\)和\(W\)).
資料範圍
\(1 \le W \le 10^6\)
題目解析
對於任意一個十進位制六位數\(\overline{abcdef}\),可作如下拆解:
\[\begin{align*} \overline{abcdef} = \overline{ab0000} + \overline{cd00} + \overline{ef} \end{align*} \]這樣一個\(10^6\)
對於所有樣例,輸出這一組答案即可。
程式碼
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 1e6; int main() { printf("%d\n", 298); for(int i = 1; i < 100; i ++) printf("%d ", i); for(int i = 100; i < 10000; i += 100) printf("%d ", i); for(int i = 10000; i <= 1000000; i += 10000) printf("%d ", i); return 0; }