堆
Huglight
这个作者很懒,什么都没留下…
展开
-
洛谷P1631 序列合并
题意:有分别含N个元素的两个数组,两个数组每个元素相加有N*N个和,求这里面的N个最小值思路:两数组已排好序,其中a中第一个元素必须选,故将b中所有元素与其相加入堆,取p为b中k对应元素与a中元素取和的a的索引,每次取出一个元素后将该索引递增并相加入堆,就不会出现重复问题#include<bits/stdc++.h>using namespace std;int n, a[10...原创 2019-07-02 10:19:36 · 144 阅读 · 0 评论 -
XDU暑训2019 Day3 Buy Low Sell High
题目:假设有无限金钱,给出第i天股票的金额,在第i天可以买入或者卖出股票,卖出时必须持有股票,求最大收益思路:维护一个最小堆,若堆空或者堆顶元素小于当前放入元素,将元素放入堆中,否则表示可以卖出股票,将堆顶元素出队,收益加上当前元素减去堆顶元素,再将当前元素入堆两次,其中一次表示堆顶元素升值为当前元素这题很难想得到,看看题解就好#include<bits/stdc++.h>us...原创 2019-07-03 16:52:32 · 111 阅读 · 0 评论 -
XDU暑训2019 Day3 New Year Snowmen
题意:三个不同大小的雪球可以做一个雪人,求最多雪人个数和需要的每组雪球大小思路:用贪心法,先按照相同的雪球个数对雪球排序,个数最多的先取,因为题目限制大小最多1e9,故用map,取最多个数雪球用堆来求,否则会超时,重载的比较是关键,暂时不知道为啥这样就可以过#include<bits/stdc++.h>using namespace std;int n;struct cmp...原创 2019-07-03 14:50:30 · 112 阅读 · 0 评论 -
洛谷P2085 最小函数值
题意:给n个A、B、C序列,每个序列可以构成Fi(x)=Aix^2+Bix+Ci (x∈N*)函数,求每个序列对应的每个函数值里m个最小值思路:和序列合并相同,x=1必取,之后堆中每取出一个对应放入递增的x值,保证不重复#include<bits/stdc++.h>using namespace std;int n, m, a[10005][3], p[10005];int ...原创 2019-07-02 20:15:16 · 121 阅读 · 0 评论