当前位置: 代码迷 >> 综合 >> POJ 3253 Fence Repair (优先队列)
  详细解决方案

POJ 3253 Fence Repair (优先队列)

热度:24   发布时间:2024-01-15 05:09:03.0

http://poj.org/problem?id=3253
题目大意:切木板,每次切木板的费用等于当前木板的长度,求切出给出的几组短木板的最小费用。
合并果子,优先队列秒过。注意要用long long

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
priority_queue <long long,vector<long long>,greater<long long> > q;
int x,n,ans,num;
int main()
{scanf("%d",&n);for(;n--;q.push(x))scanf("%d",&x);for(num=0;!q.empty();q.push(num)){num=q.top();q.pop();if(q.empty())break;elsenum+=q.top();q.pop();ans+=num;}printf("%lld",ans);return 0;
}
  相关解决方案