巧克力之耗我錢財

2021-08-20 08:49:50 字數 991 閱讀 4980

有一塊n*m的矩形巧克力,準備將它切成n*m塊。巧克力上共有n-1條橫線和m-1條豎線,你每次可以沿著其中的一條橫線或豎線將巧克力切開,無論切割的長短,沿著每條橫線切一次的代價依次為y1,y2,…,yn-1,而沿豎線切割的代價依次為x1,x2,…,xm-1。

例如,對於下圖6*4的巧克力,我們先沿著三條橫線切割,需要3刀,得到4條巧克力,然後再將這4條巧克力沿豎線切割,每條都需要5刀,則最終所花費的代價為y1+y2+y3+4*(x1+x2+x3+x4+x5)。

當然,上述簡單切法不見得是最優切法,那麼怎樣切割該塊巧克力,花費的代價最少呢?

輸入格式:

第一行為兩個整數n和m。

接下來n-1行,每行乙個整數,分別代表x1,x2,…,xn-1。

接下來m-1行,每行乙個整數,分別代表y1,y2,…,ym-1。

輸出格式:

輸出一整數,為切割巧克力的最小代價。

輸入樣例#1:

6 421

3144

12

輸出樣例#1:

42

我們可以發現,每橫切一刀,豎切的次數就要加1,同樣的,每豎切一刀,橫切的次數就要加1,因此,我們可以得到貪心策略:越大的越先切,**如下:

#includeusing namespace std;

int a[11000],b[11000],aa[11000],bb[11000],n,m,maxn=0,k,kk,ans=0;

bool c[11000],d[11000];

int main()

}for(int i=1;imaxn)

}for(int i=1;i<=n+m-3;i++)

for(int i=1;imaxn&&d[i])

}if(kk==n)

ans+=aa[k];

else ans+=bb[k];

printf("%d\n",ans);

return 0;

}

你是我冬天的巧克力,夏天的冰淇淋

從danny那裡偷來的,眼鏡猴如果看見,千萬不要認為我在影射你 不過如果我不是影射你,有什麼必要 呢?你是我冬天的巧克力,夏天的冰淇淋 文 ivee p 她打過你嗎?我是說她一邊笑一邊打,在你講過一句什麼有的沒有的話之後,她打了一下你的手臂或是肩膀,那種可以大幅受力而不覺疼痛的地方,你希望她多打你幾...

昨日之我與今日之我

回想起學生時代做的那個agent平台,除錯乙個跨主機的通訊故障,通訊協議不正常。很多次,懷疑訊息的字段有錯誤,卻沒有抓一次包來分析。依稀想過有一次,想看一下包的結構,用到了tcpdump,不會用,作罷。想到了用工具,卻使用了乙個不恰當的工具。如果當時有ethreal,那半年的除錯工作會輕鬆很多很多很...

推薦系統之我讀,我思,我惑

年前,開始系統接觸推薦系統。說到這,我想提下,最早知道推薦系統,是源於研一的時候,一次實驗室組會,乙個本科生的畢設。他是用周的heat spread 方法,其實就是利用二部圖方法進行推薦。資料是乙個使用者和物品的連線關係的二部圖。其實,這個方法很簡單,也很容易實現。但是,後來,開始接觸項亮的博士 的...