2019年湘潭大學(xué)程序設(shè)計(jì)競(jìng)賽 D-Stone (貪心)

原題鏈接:傳送門

Stone

時(shí)間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 32768K,其他語言65536K
64bit IO Format: %lld

題目描述

有n堆石子排成一排,第i堆石子有ai個(gè)石子妒茬。每次束倍,你可以選擇任意相鄰的兩堆石子進(jìn)行合并,合并后的石子數(shù)量為兩堆石子的和乱顾,消耗的體力等價(jià)于兩堆石子中石子數(shù)少的那個(gè)板祝。請(qǐng)問,將所有的石子合并成一堆走净,你所消耗的體力最小是多少券时?

輸入描述

第一行是一個(gè)整數(shù)T(1≤T≤20)表示樣例的個(gè)數(shù)。
每個(gè)樣例的第一行是一個(gè)整數(shù)n(1≤n≤10000),表示石子堆的數(shù)量伏伯。
第二行是n個(gè)整數(shù)ai(1≤ai≤10^9)

輸出描述

每一行輸出樣例結(jié)果

輸入

2
2
1 2
1
1

輸出

1
0

說明

巨大的輸入橘洞,請(qǐng)用c風(fēng)格進(jìn)行輸入

題目分析

對(duì)于n堆石子,我們要從中選擇n-1次才能完成對(duì)所有石子的合并说搅,那么炸枣,最為理想的狀態(tài),可以是一個(gè)不遞減數(shù)列或者是一個(gè)不遞增數(shù)列如:2 3 4 9 11 23 65或95 88 41 23 5 1弄唧,在這兩種情況下适肠,只要從最大的一端開始往左或往右合并,每次消耗掉的體力就是小的那一堆候引,同時(shí)因?yàn)槊看味际鞘S嗍优c當(dāng)前最大的那一堆合并侯养,那么這一堆合并后的石子依舊是最大的,所以在這兩種情況下澄干,合并所有石子需要消耗的體力是最小的逛揩,那就是除去最大那一堆的所有石子的重量的和,我們暫時(shí)把這時(shí)的消耗成為極限最小體力消耗MIN麸俘,那么當(dāng)每堆石子的數(shù)量是打亂的情況下(沒有穩(wěn)定的遞增遞減關(guān)系時(shí)是否能通過人為的合并順序達(dá)到極限最小消耗MIN呢辩稽?答案是肯定的,對(duì)于一個(gè)任意給出的數(shù)列疾掰,如:8 7 6 3 7 9 6搂誉,每次找到當(dāng)前的最大堆,同時(shí)看一下它的兩邊静檬,選二者中大的那一個(gè)與之合并炭懊,這樣能保證數(shù)列的初始最大堆每一次都是被包含在當(dāng)前最大堆當(dāng)中,且每次都是由這個(gè)當(dāng)前最大堆去和它左邊或者右邊的較小的堆合并拂檩,每次重復(fù)這個(gè)過程侮腹,通過這種方法所消耗的體力便與數(shù)列數(shù)有序時(shí)一樣能以極限最小體力MIN將所有的石子堆合并

參考代碼

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
 
typedef long long ll;

int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n,m,maxx=0;
        scanf("%d",&n);
        ll sum=0;
        for(int i=1;i<=n;i++){
            scanf("%d",&m);
            if(m>maxx) maxx=m;
            sum+=m;
        }
        sum-=maxx;
        printf("%lld\n",sum);
    }
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市稻励,隨后出現(xiàn)的幾起案子父阻,更是在濱河造成了極大的恐慌愈涩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件加矛,死亡現(xiàn)場(chǎng)離奇詭異履婉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)斟览,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門毁腿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苛茂,你說我怎么就攤上這事已烤。” “怎么了妓羊?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵胯究,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我躁绸,道長(zhǎng)裕循,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任涨颜,我火速辦了婚禮费韭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庭瑰。我一直安慰自己,他們只是感情好抢埋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布弹灭。 她就那樣靜靜地躺著,像睡著了一般揪垄。 火紅的嫁衣襯著肌膚如雪穷吮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天饥努,我揣著相機(jī)與錄音捡鱼,去河邊找鬼。 笑死酷愧,一個(gè)胖子當(dāng)著我的面吹牛驾诈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溶浴,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乍迄,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了士败?” 一聲冷哼從身側(cè)響起闯两,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后漾狼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體重慢,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年逊躁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了似踱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡志衣,死狀恐怖屯援,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情念脯,我是刑警寧澤狞洋,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站绿店,受9級(jí)特大地震影響吉懊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜假勿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一借嗽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧转培,春花似錦恶导、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至删窒,卻和暖如春裂垦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肌索。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工蕉拢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诚亚。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓晕换,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親亡电。 傳聞我的和親對(duì)象是個(gè)殘疾皇子届巩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354