dp
[i][
j]d p[
i][j
]表示對於前i個馬棚, 裝前j匹馬的不愉快係數的最小值。dp
[i][
j]=m
in(d
p[i]
[j],
dp[i
−1][
k]+c
ost[
k+1]
[j])
d p[
i][j
]=mi
n(dp
[i][
j],d
p[i−
1][k
]+co
st[k
+1][
j]
)對於前i個馬棚,裝前j匹馬的不愉快敘述, 可以考慮對於前i-1個馬棚,裝前k匹馬,然後剩下的乙個馬棚裝k+1到j匹馬。 列舉分界點k,在所有可能的情況中取得乙個最小值即可。
首先就是迴圈的時候,可以注意到對於j < i是沒有意義的,因為題目要求不能有空馬棚,所以對於i個馬棚,至少有j匹馬來裝。
在列舉分界點j的時候,如果不細緻考慮,可以讓其從1到n-1依次列舉。首先說為什麼列舉終點是n-1,還是因為那個原因,馬棚不允許空,也就是後面一定要分到一匹馬。 然後再說列舉起點,準確來說列舉起點應該是i-1,原因也是馬棚不能為空,因為我們狀態轉移方程考慮的是前i-1個馬棚,至少要分到i-1匹馬。
#include
using
namespace
std;
const
int nmax = 505;
const
int inf = 0x3f3f3f3f;
int a[nmax];
int c1[nmax],c0[nmax];
int dp[nmax][nmax];
int n,m;
int cost(int k,int j)
int main()
for(int i = 1;i<=n;++i) dp[1][i] = c1[i] * c0[i];
for(int i = 2;i<=m;++i)}}
int ans = dp[m][n];
printf("%d\n",ans);
}return
0;}
RQNOJ 篝火晚會
題目描述 佳佳剛進高中,在軍訓的時候,由於佳佳吃苦耐勞,很快得到了教官的賞識,成為了 小教官 在軍訓結束的那天晚上,佳佳被命令組織同學們進行篝火晚會。一共有n個同學,編號從1到n。一開始,同學們按照1,2,n的順序坐成一圈,而實際上每個人都有兩個最希望相鄰的同學。如何下命令調整同學的次序,形成新的乙...
其他 RQNOJ 排考場
期中考之前,總要排一下試場。張校長為此心煩 每個試場擁有的桌椅數不同。為了排試場,不免有些桌子要被移到別的試場去。為了減少移動量,張校長決定再開m個試場 m盡量要小,這是人之常情 將每個試場多餘的桌椅放入新試場內。由於教育局規定 每個試場的桌椅數必須相同。張校長犯難了,於是他找到學noip的你,希望...
其他 RQNOJ 誰拿了獎學金
期中考考完了,總要排排名次。該校有個特殊的規定 前m m 60 名學生有獎學金可以拿。面對那批堆積如山的試卷,王主任茫然無措,於是他來向懂noip的你來求救,希望你能幫助他。注 該校的名次的排列方式為 先排平均分,若平均分相同,則計算方差,方差小的學生排在前面,若方差也相同,則按考號的先後排列 考號...