luoguP1090合并果子
2017-11-28 12:37
405 查看
解决方案:
1.一看就是贪心(有本事用动归还不超时)
2.每次调最小的两个合并(不要问证明)
3.所以用优先队列,懒得手打(P党www)
4.小根堆和大根堆都差不多,选一个用吧
5.AC 奉上代码
}//小根堆
}//大根堆
1.一看就是贪心(有本事用动归还不超时)
2.每次调最小的两个合并(不要问证明)
3.所以用优先队列,懒得手打(P党www)
4.小根堆和大根堆都差不多,选一个用吧
5.AC 奉上代码
#include<iostream> #include<cstdlib> #include<queue> using namespace std; priority_queue<int,vector<int>,greater<int> >q; int n,ans; int a[1000001]; int main() { cin>>n; for(int i=1;i<=n;i++)cin>>a[i],q.push(a[i]); while(n-1) { int x=0; x+=q.top(); q.pop(); x+=q.top(); q.pop(); ans+=x; q.push(x); n--; } cout<<ans; return 0;
}//小根堆
#include<iostream> #include<cstdlib> #include<queue> using namespace std; priority_queue<int,vector<int>,greater<int> >q; int n,ans; int a[1000001]; int main() { cin>>n; for(int i=1;i<=n;i++)cin>>a[i],q.push(a[i]); while(n-1) { int x=0; x+=q.top(); q.pop(); x+=q.top(); q.pop(); ans+=x; q.push(x); n--; } cout<<ans; return 0;
}//大根堆
相关文章推荐
- codevs1063 luogu1090 合并果子
- codevs1063 luogu1090 合并果子
- 洛谷_1090 合并果子
- luogu1090 合并果子(NOIP2004提高组第2题)
- P1090 合并果子
- [LUOGU] 1090 合并果子
- 堆排 luogu1090合并果子
- Luogu 1090 合并果子(贪心,优先队列,STL运用)
- 洛谷1090 合并果子
- 洛谷[1090]合并果子
- 洛谷luogu-1090 合并果子(2004NOIp提高组) HQG_AC的博客
- 洛谷1090 合并果子 解题报告
- 合并果子(NOIP2004)
- 合并果子(Vijos P1097)
- 【NOIP合并果子】uva 10954 add all【贪心】——yhx
- 合并果子_tyvj1066_vijos1097_codevs1063_贪心+堆
- SDUT2127树-堆结构练习——合并果子之哈夫曼树
- SDUT 2127 树-堆结构练习——合并果子之哈夫曼树
- CSU 1588 合并果子(优先队列)
- P1090 合并果子 <优先队列>