codevs1063 合并果子 优先队列(小根堆)
2017-06-24 11:24
260 查看
这道题很容易想到优先把两堆重量最小的合并比较优 然后乱搞一下就可以啦
#include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; int read(){ int ans=0,f=1,c=getchar(); while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();} while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();} return ans*f; } int n; struct node{ int w; bool operator<(const node&x)const{return x.w<w;} }; int tot; priority_queue<node>q; int main() { int ans; n=read(); for(int i=1;i<=n;i++) q.push((node){read()}); while(1){ node x=q.top(); ans=x.w; q.pop(); if(q.empty()){printf("%d\n",tot); return 0;} node y=q.top(); ans+=y.w; q.pop(); q.push((node){ans}); tot+=ans; } return 0; }View Code
相关文章推荐
- codevs 1063 合并果子 STL 优先队列
- 【贪心】CODE[VS] 1063 NOIP2004普及组-合并果子 (刷题记录(模拟+优先队列))
- [解法二] CodeVS1063 合并果子 题解
- CODEVS 1063合并果子
- Codevs 1063 合并果子
- 合并果子_tyvj1066_vijos1097_codevs1063_贪心+堆
- [Codevs] 1063 合并果子
- codevs1063 luogu1090 合并果子
- [左偏树]CODE[VS] 1063——合并果子
- 【codevs1063】【NOIP2004PJ】合并果子,贪心の钻石
- codevs1063 luogu1090 合并果子
- 合并果子 (codevs 1063) 题解
- codevs1063合并果子
- 【基础练习】【堆】codevs1063 合并果子题解
- 合并果子 (优先队列小根堆)
- 合并果子 (优先队列小根堆)
- 合并果子 (优先队列小根堆)
- 合并果子 (优先队列小根堆)
- [CodeVs 1063] 合并果子 ——小根堆
- 合并果子 (优先队列小根堆)