合併果子人人皆知,然而這並不是dp,是可以每次選最小的就可以對,
but我直接暴力,神奇的tle了!
於是乎,我用了堆
int d[100000]; //堆
int main()
}int len=n,ans=0;
while(len>1)
s+=d[1]; //再取一次最小值
d[1]=d[len--];
//d[len+1]=0;
u=1;
while(len>=u*2 && d[u]>d[u*2] ||len>=u*2+1 && d[u]>d[u*2+1])
ans+=s; //合併果子後又放入堆中,最後剩下的即是解....
d[++len]=s;
u=len;
while(u>1 && d[u]2])
}cout
/解return
0;}
Codeup堆 合併果子(堆)
在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體力之和。...
堆 合併果子(C )
description 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出 所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等...
堆 優先佇列 合併果子 fruit
時間限制 1000 ms 記憶體限制 65536 kb 提交數 564 通過數 356 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n...