数据结构
撒旦即可
研究CV的菜狗
展开
-
poj2431(优先队列,贪心)
解题思路:反正就是一个个站点遍历下去,如果够不到下一个站点,那说明前面需要加油。就把优先队列中加油最大的那个提出来。每扫过一个站点,把它可加的油放入优先队列中维护。#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm...原创 2019-02-10 20:29:26 · 273 阅读 · 0 评论 -
POJ1182(权值并查集)
解题思路:做到现在的题,还头一次碰上这种并查集,值得纪念。AC的时候用while(scanf("%d%d",&n,&k)!=EOF)读入一直报错,据说是因为只有一组测试数据。推导见下: #include<cstdio>#include<cstring>using namespace std;int fa[50009],re[5000...原创 2019-02-11 17:38:29 · 398 阅读 · 0 评论 -
HDU3530(单调队列维护)
给定一段序列,求出最长的一段子序列使得该子序列中最大最小只差x满足m<=x<=k。解题思路:单调队列维护就是后面插入的数如果比队列前面的数大,或小,就把队列队尾的元素给剔除(总而言之,队列中的元素大小是单调增或单调减的)。这道题就是用单调队列维护的,具体见代码。#include<cstdio>#include<cstring>#include<...原创 2019-03-26 23:00:05 · 716 阅读 · 0 评论 -
P3377(左偏树,模板)
题意:如题,一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作:操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆内,则无视此操作)操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若第x个数已经被删除,则输出-1并无视删除操作)解题思路:裸的左偏树左偏树学习:https://blog.cs...原创 2019-04-16 12:49:47 · 367 阅读 · 0 评论