
数据结构---乱搞
呜喵汪
这个作者很懒,什么都没留下…
展开
-
牛客网暑期ACM多校训练营(第四场)J:Hash Function(数据结构+乱搞)
题目大意:有一种hash方式为,当a[i]%n产生冲突时,就往后推到一位没有冲突的地方。现在给你hash后的序列,能否推出hash前的顺序,如果可以,输出最小字典序。 解题思路:刚开始比赛的时候想的是拓扑排序,因为对于拓扑排序来说在A事件没有发生前,是不可能发生B事件的。那么就是说如果我a[i]%n的结果是pos 那么就可以对于 pos 到 i 所有的数对于a[i]连一条有向...原创 2018-07-30 09:04:49 · 244 阅读 · 0 评论 -
2018 Multi-University Training Contest 3 hdu多校第三场 Problem A:Ascending Rating(单调队列)
题目大意:给你n个数,对于第i个数求区间(i , i+m-1)的最大值以及严格递增序列的长度。 解题思路:n是1e7,所以肯定是单调队列,但是单调队列注意要倒着维护,倒着维护感觉会比较的简单。最大值直接取 head 即可,长度即tail-head的长度。 Ac代码:#include<bits/stdc++.h>using namespace std...原创 2018-07-30 21:02:04 · 451 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第五场)F:take (树状数组维护期望)
题目大意:给你n个箱子,每个箱子打开后有p概率获得大小为 d 的钻石,按照顺序从第一个箱子开始打开。每当打开箱子后发现箱子里的钻石比当前手上的钻石大,就交换一次。问最后打开所有箱子后交换次数的期望是多少。 解题思路:对于一个箱子,我们打开它以后会发生交换的概率其实是 pi*(1-pj) pi 指的是当前打开这个箱子得到钻石的概率, 1-pj 指的是在这个箱子之前...原创 2018-08-06 21:06:33 · 181 阅读 · 0 评论 -
2018CCPC网络赛:Neko's loop(单调队列)
题目大意:给你n个数,每次可以选择从任意一点开始跳跃,每次跳跃至 (i+k)%n 的位置并获得当前位置的最大快乐值,求跳m步的过程中能够获得的最大快乐值,可以在任何时刻终止该操作。 解题思路:其实这个题初看比较复杂,但是无聊打了个表发现对于 长度为n 的序列,它所有的循环节是等长的。等于说整个序列就是由一些循环节构成的,那么我们把循环节专门挑出来计算跳m步即可。那么问题就...原创 2018-08-26 21:04:31 · 482 阅读 · 0 评论 -
2018CCPC网络赛1001:Buy and Resell(优先队列)
题目大意:1到n每个城市有一个价值为a[i]的物品,当你到达这个城市的时候,可以花费a[i]买一个物品,也可以卖掉手中一个物品获得a[i],也可以什么都不做。问最后能够获得的最大利润是多少,最大利润相同时求最少的交易次数,同一时刻手中可以持有多个物品。 解题思路:维护一个优先队列,每次到达一个城市,判断一下当前优先队列中最小的值是否小于当前城市的a[i],如果小于的话,就假设...原创 2018-08-25 21:27:02 · 413 阅读 · 0 评论