【堆排】合并果子
2014-03-12 17:00
127 查看
#include<cstdio>
#define maxlongint 2147483647 long n,a[10001],ans,i,k; void Adjustheap(long s) { long j=0,tmp; while (j!=maxlongint){ tmp=a[s]; j=maxlongint; if (s*2<=n && a[s*2]<tmp){ tmp=a[s*2]; j=s*2; } if (s*2+1<=n && a[s*2+1]<tmp){ tmp=a[s*2+1]; j=s*2+1; } if (j!=maxlongint) { long k=a[s]; a[s]=tmp; a[j]=k; s=j; } } } void Buildheap(){ for (i=n>>1;i;i--) Adjustheap(i); } int main() { freopen("fruit.in","r",stdin); freopen("fruit.out","w",stdout); scanf("%ld",&n); for (i=1;i<=n;i++) scanf("%ld",&a[i]); Buildheap(); while (n>1){ k=0; k+=a[1]; a[1]=a ; n--; Adjustheap(1); k+=a[1]; a[1]=k; Adjustheap(1); ans+=k; } printf("%ld\n",ans); // getchar(); getchar(); }
相关文章推荐
- 合并果子
- 07年 ZZUPC校赛第三题 合并果子(优先队列 ~)
- TYVJ 1066 合并果子 解题报告
- 合并果子(NOIP2004)
- 合并果子
- 合并果子(堆写法)
- 树-堆结构练习——合并果子之哈夫曼树
- TYVJ 1066 合并果子【优先队列】
- 树-堆结构练习——合并果子之哈夫曼树(优先队列)
- 【vijos】【优先队列】合并果子
- AC日记——手写堆ac合并果子(傻子)
- 树-堆结构练习——合并果子之哈夫曼树
- 【算法学习笔记】79.STL 优先队列 模拟法 SJTU OJ 4012 合并果子
- 【基础练习】【堆】codevs1063 合并果子题解
- 洛谷1090 合并果子
- 合并果子 2004年NOIP全国联赛普及组
- NOIP2004普及组:合并果子
- CSU1588 合并果子(贪心)
- 合并果子 关于排序的做法
- 【学术篇】一石三鸟的——洛谷2654——原核生物培养(石子合并果子)