poj3253解题报告c语言
2015-08-12 16:25
309 查看
#include <stdio.h> #define INF 50001 __int64 heap[INF],arr[INF], size = 0; void push(__int64 x){ __int64 i = size++; while(i > 0){ __int64 j = (i - 1) / 2; if(heap[j] <= x) break; heap[i] = heap[j]; i = j; } heap[i] = x; } __int64 pop(){ __int64 res = heap[0], temp = heap[--size]; __int64 i = 0; while(i * 2 + 1 < size){ __int64 j = i * 2 + 1; if(j + 1 < size && heap[j + 1] < heap[j]) j++; if(heap[j] >= temp) break; heap[i] = heap[j]; i = j; } heap[i] = temp; return res; } int main(){ __int64 x,i,m,a,b; __int64 temp,num=0; scanf("%I64d",&m); for(i=0;i<m;i++) { scanf("%I64d", &x); push(x); } while(m!=1) { m--; a=pop(); b=pop(); if(m!=1) push(a+b); num=num+a+b; } printf("%I64d",num); return 0; }
相关文章推荐
- 【effective c++读书笔记】【第6章】继承与面向对象设计(2)
- 【effective c++读书笔记】【第6章】继承与面向对象设计(2)
- C++实现位数组
- 大约 C++ 几个方面分析--overload, override, overwrite, rewrite
- C++/CLI托管
- 在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误
- LeetCode 213. House Robber II
- c#引用c++ dll类型转换
- C++标准程序库笔记(4)
- [leetcode-125]Valid Palindrome(c++)
- C语言实现多级反馈队列调度算法
- 使用cmake编译C语言项目时使用第三方库
- C++实现操作系统调度算法(FSFS,SJF,RR,多级反馈队列算法)
- 黑马程序员——C语言中变量的存储类别
- c语言可变参数编程
- hdu1198 二维并查集
- C/C++语言 void 及 void 指针深层探索
- [leetcode-124]Binary Tree Maximum Path Sum(c++)
- VC++对话框中加状态栏
- Android------使用C/C++调用SO库