恢复数列
題目鏈接
比賽鏈接
時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K Special Judge,64bit IO Format: %lld
題目描述
小y的數學作業不小心被潑上了墨水。有道題看不清了,現在他想請你幫他恢復這道題。 這道數學題原型如下:
幸運的是,小y依然記得自己所求得的答案x。現在請你幫他找回這個數列a。
你的輸出需要保證0≤ai≤n
輸入描述:
輸入共一行兩個用空格隔開的正整數n,x。含義見【題目描述】
輸出描述:
輸出共一行n個用空格隔開的正整數,第i個數字表示ai 當你輸出多于n個數字時,只有前n個數字有效。 如果有多種答案,你只需要輸出任意一種
輸入保證有解。
示例1
輸入
輸出
2 0 0 0 0 0 0 1 1 1 1 1說明
62=60+60+60+60+60+60+61+61+61+61+61=36
備注:
對于30%的數據滿足:2≤x<n≤7
對于50%的數據滿足:2≤x<n≤103
對于100%的數據滿足:2≤x<n≤106
題解:
可以證出n-2=k(x-1)
最方便的構造就是:
第一個是k
后面x個是0
x-1個是1
x-1個是2
x-1個是3
直到把n個數填滿
x0+…x0+x1+…x1+x2+…+x2+…
=x+ (x-1)(x1+x2+x3+…+xk)
x+(x-1)*m
等比數列求和得到m
=xk
總結
- 上一篇: 浙l是哪里的牌照区号多少
- 下一篇: 韩信点兵歇后语下一句是什么 韩信点兵的歇