![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
文章平均质量分 76
WA是一笔财富
这个作者很懒,什么都没留下…
展开
-
Codeforces 831 E. Cards Sorting set+树状数组模拟
传送门:E. Cards Sorting题意:给你n张卡片,每张卡片上都有数字,每次从顶端抽一张,如果是当前剩余卡片中最小的,就把他扔掉,否则放到堆底,问抽多少次能把所有卡片都扔掉。正解:将卡片上的数字的对应初始位置用set记录下来,大小相同数字的位置放到一个set里,并且用树状数组维护每个位置的卡片是否还在,然后我们从最小的数字开始遍历,假设上一次停下的位置是last,当前最小数字是x,原创 2017-07-16 22:28:00 · 403 阅读 · 0 评论 -
POJ - 3190 Stall Reservations 贪心 + 优先队列
传送门:POJ - 3190 题意:给定n个区间,问至少把他们分成几个集合,才能使集合内的区间互不相交,并输出每个区间对应的集合编号。思路:开始写了一发暴力,用并查集维护了一下,然而还是无情的tle。正解:将区间按左端点排序,然后遍历,用优先队列维护已经遍历过的区间的右端点,当前区间的左端点比堆顶的右端点小的话就说明能加到同一个集合里,否则就要新开一个集合。代码:#incl原创 2017-07-19 14:15:05 · 234 阅读 · 0 评论 -
POJ - 2010 Moo University - Financial Aid STL(优先队列)
传送门:POJ2010题意:给出c个点对(a, b),从中选出n个来,使得sum(b)不大于f,并且由a组成的序列的中位数尽量的大。正解:先将所有的点对按a排序,假设k是中位数对应的点对在原序列的位置,由中位数定义可知,[1,k-1]中必定选了(n-1)/2个点对,[k+1,c]中也必定选了(n-1)/2个,而且无论剩下的点对怎么选,最后影响结果的都只是k中的a。又因为我们要满足sum(b原创 2017-07-23 19:23:41 · 198 阅读 · 0 评论 -
HDU 6040 Hints of sd0061 STL
传送门:HDU6040题意:给出一个递推序列,和m个询问,问其中第mi小的数是多少。官方题解:1008. Hints of sd0061最慢的情况是 bb 的取值为 0,0, 1,1, 2,2, 3,3, 5,5, 8,8, \cdots⋯ 的情况,但事实上也只有 \mathcal{O}(\log_{1.618}{n})O(log1.618n) 个取值。原创 2017-07-26 17:28:41 · 275 阅读 · 0 评论 -
HDU 6136 Death Podracing 优先队列 + 循环链表(模拟)
传送门:HDU6136题意:n个人在圆形上运动,他们都有一定的速度和初始位置,当两个人相遇的时候编号较小的就会出局,当场上剩下最后一个人的时候游戏结束,问多长时间游戏会结束。思路:官方题解:我用的是解法一。代码:#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;ty原创 2017-08-22 21:07:23 · 405 阅读 · 0 评论 -
HDU - 5036 Explosion floyd(bitset优化) + 概率期望
题意:给出n个房间。每个房间上都有锁。每个房间内有一定数量的能开其他房间的钥匙,若当前手里的钥匙不能再打开新的房间,我们可以选择用炸弹炸开一个新的房间,给出每个房间中钥匙的数目和具体能开那个房间,求要打开所有房间,需要使用的炸弹数目。思路:单独考虑每个点打开需要用炸弹的期望次数,那么所有点的期望之和就是答案。每个点 v 需要用炸弹的期望次数是 1/S, S是u(u->v连通)的数量,然后就变成原创 2017-10-11 22:16:42 · 428 阅读 · 0 评论 -
CodeForces - 867E Buy Low Sell High 贪心 + 优先队列
传送门:CodeForces - 867E题意:有一个物品,在n天内有不同的价格,每天可以选择买入或者卖出该物品,而且只能操作一次,初始手上没有该物品,问能获得的最大利益是多少。思路:题目都告诉你了,我们肯定是要贪心的低买高卖,考虑用优先队列(小顶堆)维护这一过程,我们每次得到一个新的价格,将其和堆顶的价格比较,如果比堆顶的价格低,就直接放入堆中,如果比堆顶的价格高,就意味着我们可以提前以原创 2017-10-12 15:38:51 · 749 阅读 · 0 评论 -
HDU 5961传递 思维 + bitset
传送门:HDU 5961题意:中文题思路:这题如果按hdu上的6s时限的话就有很多做法了,从每个点开始bfs判断是否有长度大于等于2的最短路径,或者dfs判断给出的图中是否有三元环等等,但是据说现场赛是1500ms时限,那这些做法就都不行了。能在现场赛实现下通过的一个方法是用bitset将每个点的出边保存下来,然后枚举每一条边,判断该边的两个端点的出边是否都为下图的情况即判断是原创 2017-10-17 15:39:43 · 435 阅读 · 0 评论