构造题
N=1e6
最多300个数,至多三个其中的数(这些数也<=N)相加,尽可能覆盖多的1~W(W<=N)
一眼想到二进制 发现不好构造
只好从数据下手 300 1e6
就想到拆成 3个部分 每份100个数
int v[510];
int u[N];
signed main() {
n = read();
cout << 300 << "\n";
rep(i, 1, 100) cout << i << " ";
rep(i, 1, 100) cout << i * 100 << " ";
rep(i, 1, 100) cout << i * 10000 << " ";
return 0;
}
就愉快的AC了