CSES 3157 - Collecting Numbers Distribution
1.0s 512M給你一個陣列,裡面 \(1 \dots n\) 之間的每個數字都恰好出現一次。你要從 \(1\) 到 \(n\) 由小到大收集這些數字。每一輪,你會從左到右走過整個陣列,從還沒被收集的最小數字開始,盡可能收集連續的數字。
你的任務是對每個 \(k=1,2,\dots,n\),判斷需要恰好 \(k\) 輪才能收集完所有數字的陣列有幾個。
輸入格式
輸入只有一行,包含一個整數 \(n\)。
輸出格式
輸出 \(n\) 個數字:對每個 \(k=1,2,\dots,n\),輸出答案對 \(10^9+7\) 取模的結果。
範例輸入 1
3
範例輸出 1
1
4
1
說明:這些陣列是 \([1,2,3]\)(\(1\) 輪)、\([1,3,2]\)(\(2\) 輪)、\([2,1,3]\)(\(2\) 輪)、\([2,3,1]\)(\(2\) 輪)、\([3,1,2]\)(\(2\) 輪)以及 \([3,2,1]\)(\(3\) 輪)。
限制
- \(1 \le n \le 5000\)
題目來源
CSES - Collecting Numbers Distribution
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入