
堆
largecub233
这个作者很懒,什么都没留下…
展开
-
洛谷P3049 [USACO12MAR]园林绿化Landscaping
https://www.luogu.org/problem/show?pid=3049 这道题的思路啦,其实还好啦; 但是自己想的时候跟傻逼一样; 还好又fop_zz给我讲了半天; 做这道题目啦,先去做一下洛谷的一题“种树” 这道题目啦 最本质的思路,就是先计算当前最优答案,加入总答案,然后在之后的计算里,来更新之前所谓的“最优答案” 比如我们现在在i缺一 那我们花费x的钱补一 之原创 2017-08-15 22:57:06 · 631 阅读 · 0 评论 -
堆——洛谷 P1334 瑞瑞的木板
https://www.luogu.org/problem/show?pid=1334#sub 额 你要逆着想; 是不是就是每次去最小的两个计算答案,在把他们的和放到序列里对不对?#include<bits/stdc++.h>#define Ll long longusing namespace std;int n,x;Ll ans;int main(){ scanf("%原创 2017-06-12 21:50:49 · 476 阅读 · 0 评论 -
堆——洛谷 P1323 删数问题
https://www.luogu.org/problem/show?pid=1323 对于集合元素的求法,我们可以大力queue 直接建一颗小根堆; 对于最后求答案,那么直接贪心就好了; 大力找到第一个递增序列,删掉第一个元素#include<bits/stdc++.h>#define Ll long longusing namespace std;priority_queue<Ll原创 2017-06-19 09:14:19 · 495 阅读 · 0 评论 -
堆——洛谷 P1484 种树
https://www.luogu.org/problem/show?pid=1484 本题其实是在n个数中选出至多k个数,且两两不相邻,并使所选数的和最大。 很容易想到动规思路:f[i][j]表示种到第i棵树且种了j棵的最大获利,则f[i][j]=max(f[i-1][j],f[i-2][j-1]+a[i]),注意边界、初始化即可。 但是,对于本题n<=300000的数据规模,动规原创 2017-06-22 14:14:05 · 674 阅读 · 0 评论 -
c++优先队列,小根堆
一直对priority不会,现在要记一下了priority_queue<int,vector<int>,greater<int> >q;这样的话,我们可以得到一个小根堆; 意思大概是<类型,<存储方式>,<比较函数> >; 但是这个小根堆只能支持int; 反正我不会啦;struct cs{ int x; bool operator < (const cs &rhs) const原创 2017-06-16 09:33:31 · 19098 阅读 · 2 评论