Acm真题-优先队列(木棍连接问题)

这篇博客介绍了如何利用优先队列数据结构解决ACM竞赛中的一道题目,该题目要求用木棍连接起来并最小化购买连接材料的费用。博主提供了两种C++实现方法,一种是直接使用`priority_queue`,另一种是通过自定义结构体和友元函数重载`<`操作符。通过示例输入和输出展示了算法的正确性。

队列

队列(Queue)与栈一样,是一种线性存储结构,它具有如下特点:

(1)队列中的数据元素遵循“先进先出”(First In First Out)的原则,简称FIFO结构;

(2)在队尾添加元素,在队头删除元素。

优先队列

1.可进行升降序的排序的队列排序:
升序:priority—queue<int,vector,greater >q
降序:priority—queue<int,vector,less >q

2.利用结构体自定义优先级顺序
利用operator进行重载运算符来进行定义结构体内部优先级顺序。

一.struct cmp1{ bool operator()(int x,int y) { return x>y;//小的优先级高 ,从小到大排 } };

二.struct node{ int x,y; friend bool operator<(node a,node b)-->**这是运用了友元重载** { return a.x>b.x;//按x从小到大排 ,小的优先级高 }

acm真题:

Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu
Submit

Status
Description
我们的小伙伴Bingo真的很调皮,他在上课的路上看到树上有个鸟窝,他就想去把他捅下来,但是鸟窝很高他够不到,于是他就到处找木棍,想把这些木棍接在一起,然后去捅鸟窝。他一共找了N跟木棍 (1 ≤ N ≤ 20,000),每根木棍的长度为 Li (1 ≤ Li ≤ 50,000) 。现在他要把

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值