分期:将N个账款分割成M个财务期,使得每个分期账款和的最大值最小。
思路
bool C(int d) = 分解成 M 個區間後,最大的區間和 s <= d
盡量把一個區間的值塞滿,直到塞不下。
也就是說,從左至右迭代 A[i],如果前一個區間的總和再加上 A[i] 會大於 d 的話,
則 A[i] 就是下個區間的起始點。最後看區間的數量是否 <= M
代码
1 | #include<iostream> |
分期:将N个账款分割成M个财务期,使得每个分期账款和的最大值最小。
bool C(int d) = 分解成 M 個區間後,最大的區間和 s <= d
盡量把一個區間的值塞滿,直到塞不下。
也就是說,從左至右迭代 A[i],如果前一個區間的總和再加上 A[i] 會大於 d 的話,
則 A[i] 就是下個區間的起始點。最後看區間的數量是否 <= M
1 | #include<iostream> |