題目描述
shiva養了乙隻小企鵝。小企鵝很聰明,她總是幫shiva和他的好朋友想出很多很好玩的遊 戲。其中有乙個遊戲特別經典,shiva和他的小夥伴們百玩不厭。 遊戲規則如下: 先給出2個正整數序列a1、a2,序列長度分別為l1,l2 (1 ≤ l1, l2 ≤ 5000)。你可以 做如下移動:移去第乙個序列的最後p1 (p1≥1) 個數(可以是整個序列)並得到它們的和 s1,同時移去第二個序列的最後p2 (p2≥1)個數(可以是整個序列)並得到它們的和s2。 那麼這次移動的費用為 (p1-s1)*(p2-s2)。你可以繼續遊戲直到兩個序列為空,所以不允許乙個數列空了,而另乙個數列中還有數。而這次遊戲 的費用就為每次移動費用的和。 你現在的目標是使這次遊戲的費用最小。 注意:序列能為空當且僅當兩個序列同時為空。
輸入格式
第一行兩個正整數l1,l2分別表示兩個序列的長度; 第二行l1個正整數,描述序列a1[1…l1],第i個正整數為a1[i] 第三行l2個正整數,描述序列a2[1…l2],第i個正整數為a2[i] 除l1,l2外,所有的整數均不超過1000。
輸出格式
乙個正整數表示該次遊戲的最小費用
樣例樣例輸入
3 21 2 3
1 2樣例輸出
資料範圍與提示
對於30%資料,1<=l1,l2<=50
對於60%資料,1<=l1,l2<=500
對於100%資料,1<=l1,l2<=5000
題解:首先,讓我們證明乙個性質,每段對應區間必然是一對多或一對一。假如存在二對多的話,那必然可以拆成上述區間使答案更小。所以用動態規劃。
對於每乙個f[i][j],要麼以i為乙個區間,或j為乙個區間,或i和j為乙個對應區間。
#include
#include
#include
#include
#include
#define n 5005
using
namespace std;
int f[n]
[n],l1,l2,a1[n]
,a2[n]
;int
main()
for(
int i=
1;i<=l2;i++
)memset
(f,0x3f3f3f
,sizeof
(f))
; f[0]
[0]=
0;for(
int i=
1;i<=l1;i++)}
printf
("%d\n"
,f[l1]
[l2]);
return0;
}
企鵝的石頭
他們當中有乙隻企鵝叫康康,那是乙隻最優秀的企鵝,深深地愛著另乙隻企鵝喃喃。他像所有準備求婚的企鵝一樣,康康千辛萬苦地奔波著,去找石頭。他經過長途跋涉,丟下一塊又不太滿意的石頭,累得筋疲力盡時,他終於找到了一枚最精緻 最光潔的石頭,他覺得只有這一枚才配得上喃喃。可是,喃喃最後卻和另乙隻企鵝結婚了。那個...
鬥魚虎牙合併,遊戲直播洗牌,企鵝觸手未來怎麼走?
鬥魚虎牙合併傳聞甚囂塵上,4月初,騰訊宣布斥資2.6億美元增持虎牙後,騰訊取代歡聚時代成為虎牙最大股東投票權提高到50.1 隨後虎牙直播ceo董www.cppcns.com榮傑也發布全員信確認這一訊息。實際上,騰訊同時持有鬥魚37.2 股份和投票權,是鬥魚最大股www.cppcns.com東。控股虎...
企鵝帝國的瘋狂反撲!
這裡先附一段不久前的一篇分析 chrome os 和 chrome web store 終於算是正式發布了,好象這個發布,不象微軟的windows7,phone7這樣動靜大。但是google刻意的低調下面,蘊藏著一場作業系統的革命。原因在這裡 之前大家一直都以為 chrome os 主要針對上網本市...