4036 企鵝的遊戲 penguin

2021-09-27 12:34:35 字數 1329 閱讀 6445

題目描述

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 主要針對上網本市...