在修建完新路後,小羊們總算可以安心入學了。今年是羊年,新入學的小羊特別多。老師們打算將n只小羊分成m個班級,每個班至少有1隻羊。
如何分班成了老師們最頭疼的事情,因為開學典禮上,村長就要看到小羊們列隊的情況。每個班的小羊都排成一排,站在草場上。村長希望佇列中羊的高度盡可能整齊,村長對佇列的不整齊度有自己的要求。
例如佇列中共有t隻羊,高度依次為a1,a2……,at。那麼不整齊度為:(|a1-a2|+|a2-a3|+……+|at-1-at|)^2。即相鄰兩隻羊高度差之和的平方。
而總體的不整齊度,就是各班不整齊度之和。
現在,請你幫助老師們設計一下,如何分班,如何列隊,才能使m個班級的不整齊度之和最小。
第一行兩個整數n和m,分別表示共有n只小羊,要被分成m個班級。
第二行n個整數,表示每只小羊的高度ai。
輸出最小的不整齊度之和,結果保證不會超過2^31-1。
424
132
2
dp
設f[i][j]為第i個數前,分成j隊的最小不整齊度
前差和,i與j之間的差。
推動態能量轉移方程
這樣有80分,剩下要靠斜率優化來完成
#
include
#include
#include
#include
using
namespace std;
int m,n,k,a[
10010
],f[
1001][
1001
],b[
1001][
1001];
intmain()
sort
(a+1
,a+1
+n);
//有序的
for(
int i=
1;i<=n;i++)}
memset
(f,1
,sizeof
(f))
;for
(int i=
0;i<=n;i++
)for
(int i=
2;i<=n;i++
)for
(int j=
2;jcout<[m];
return0;
}
2020 3 28 C組模擬賽題解
t1 羊羊整除 t2 羊羊吃草 t3 羊羊修路 t4 羊羊列隊羊年到了,村長開始教小羊學習pascal語言,剛開始學習四則運算。村長在白板上寫下兩個整數16和3,問小羊們,有16隻羊,平均分到3個羊村,每個羊村分到的數量必須相同,這個分配的數量最大是多少?小羊們很快就得到了答案,每個羊村分到5只,有...
羊車門 C語言版 FDDLC
假設你在進行乙個遊戲節目。現有三扇門供你選擇 一扇門後面是一輛轎車,另兩扇門後面各是一頭山羊。你當然更想得到轎車,但你卻無法看到門後面的真實情況。主持人先讓你做第一次選擇。在你選擇了一扇門後,知道其餘兩扇門後面是什麼的主持人,開啟了另一扇門給你看 那裡有一頭山羊。現在主持人告訴你,你還有一次選擇的機...
C 演算法 狼羊菜過河問題
namespace 狼羊菜過河問題 物件陣列 static string start new string 開始情況 static string end new string 結束情況 static int cnt objects.length 幾種物件 static int count 0 解決方...