[問題] 想請教個題目

看板C_and_CPP (C/C++)作者 (小可魚)時間16年前 (2010/05/09 23:06), 編輯推噓6(6013)
留言19則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 給你N個人,然後他們的編號依序是1~N,第i個人有個戰鬥力Xi。 然後你要把他們分組,每個組內的成員編號必須連續, 且所有人都要有組,組數量不限。 然後每個組的戰鬥力為該組的成員Xi總和x, 此時我們給個校正公式,設這組的修正戰鬥力為 x' , x' = ax^2 + bx + c。 然後要問你最大的"修正後的各組戰鬥力總和"。 會給你N, a, b, c以及各個Xi。 N < 1000000, -5 <= a <= -1, |b|和|c|皆 <= 10000000, 1 <= Xi <= 100 Sample Input 4 //N -1 10 -20 //a, b, c 2 2 3 4 //Xi ( i = 1~4) Sample Output 9 分組為 [2 2] [3] [4] 補充說明: 已有N^2算法,但想不出更高效的算法,麻煩板上的大大幫忙,感謝~ //N^2是利用動態規劃 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.28.138

05/09 23:11, , 1F
如果題目敘述不清麻煩推文提出 謝謝
05/09 23:11, 1F

05/09 23:30, , 2F
怎麼覺得每個人都各自一組是最佳解
05/09 23:30, 2F
補個sample,sample就不是嚕

05/09 23:31, , 3F
聽起來像是 SOM 可以解決的東西..
05/09 23:31, 3F

05/09 23:47, , 4F
SOM 類神經網路算法? 這是高中競賽 感覺沒那麼複雜吧(?
05/09 23:47, 4F
※ 編輯: yuscvscv 來自: 111.255.28.138 (05/09 23:50)

05/10 00:00, , 5F
好奇追問:N=54,-> 53, 54, 1, 2, 算連續可分為一組嗎
05/10 00:00, 5F

05/10 00:03, , 6F
不行
05/10 00:03, 6F

05/10 00:16, , 7F
好想請你分享你的解法丫..
05/10 00:16, 7F

05/10 00:21, , 8F
如果我會了我還要問嗎Orz....
05/10 00:21, 8F

05/10 00:22, , 9F
N^2 大概就狀態 dp[i][j] 到第i個人時分j組的最優情形
05/10 00:22, 9F

05/10 00:23, , 10F
沒很仔細思考過 可能有誤
05/10 00:23, 10F

05/10 00:24, , 11F
那c>0的時候 各自一組是最佳解吧
05/10 00:24, 11F

05/10 00:33, , 12F
c>0各自一組也不見得會是最佳解 要看二次函數的最大值
05/10 00:33, 12F

05/10 00:37, , 13F
因為xi是正的 所以愈大的group^2*a就會扣愈多 還少了很多c
05/10 00:37, 13F

05/10 00:41, , 14F
那是因為你假設最大值發生在x<0的地方
05/10 00:41, 14F

05/10 00:44, , 15F
在某強者板上有看到線性解了 感謝各位幫忙的大大
05/10 00:44, 15F

05/10 00:46, , 16F
我道歉一下 ckclark是對的 XD
05/10 00:46, 16F

05/10 00:47, , 17F
嗯 這題條件鎖很死
05/10 00:47, 17F

05/10 00:48, , 18F
可以麻煩轉錄一下解答嗎?
05/10 00:48, 18F

05/10 00:51, , 19F
唔 還在驗證中......基本上是用DP加上本題的單調性
05/10 00:51, 19F
文章代碼(AID): #1Bvizn-X (C_and_CPP)
文章代碼(AID): #1Bvizn-X (C_and_CPP)