CSU1588 合并果子(贪心)
2017-02-12 14:09
197 查看
题目:现在有n堆果子,第i堆有ai个果子。现在要把这些果子合并成一堆,每次合并的代价是两堆果子的总果子数。求合并所有果子的最小代价。
思路:每次优先合并最小的两堆,但若每次合并后都进行排序,会造成TE,本文采取冒泡排序,每次只排出最小的两个。
代码如下:
思路:每次优先合并最小的两堆,但若每次合并后都进行排序,会造成TE,本文采取冒泡排序,每次只排出最小的两个。
代码如下:
#include<cstdio> #include<algorithm> using namespace std; int T,n,a[1100],s; int main() { scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); s=0; while(n>1) { int m = 2;//冒泡排序,每次只排最小的两个 while (m--) { for (int j = 0; j<n; j++) { if (a[j]<a[j + 1]) { int k = a[j]; a[j] = a[j + 1]; a[j + 1] = k; } } } a[n - 2] = a[n - 1] + a[n - 2]; s = s + a[n - 2]; n--; } printf("%d\n",s); } return 0; }
相关文章推荐
- CSU 1588 合并果子(贪心 优先队列)
- CSU 1588 合并果子(优先队列)
- CSU-1588 合并果子
- CSU 1588 合并果子
- ACM 75. [NOIP2004] 合并果子(水贪心)
- 【贪心】CODE[VS] 1063 NOIP2004普及组-合并果子 (刷题记录(模拟+优先队列))
- 【NOIP合并果子】uva 10954 add all【贪心】——yhx
- jzoj1082-合并果子【堆,贪心】
- luogu1090(堆,排序,贪心)合并果子
- 平衡堆+贪心 hdu1588 合并果子
- 1588: 合并果子
- 贪心&合并果子
- 【NOIP合并果子】uva 10954 add all【贪心】——yhx
- Vijos P1097 合并果子(优先队列 贪心)
- 普及练习场 贪心 合并果子
- Vijos-P1097-合并果子(简单贪心 && 优先队列 && c++)
- Tyvj 1066 合并果子(贪心)
- 【贪心】合并果子{加强版的}
- 【NOIP合并果子】uva 10954 add all【贪心】——yhx
- [Swust OJ 352]--合并果子(贪心+队列模拟)