11 2018 档案

posted @ 2018-11-29 22:03 wxyww 阅读(162) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 将哪些村庄已经被摧毁了放到treap里。查询的时候如果当前村庄已经被毁了,那么就可以直接输出0.不然就输出这个村庄的后继 前驱 1。原因显然 代码 一言 谁看见过风?我和你,都不曾看见过。 阅读全文
posted @ 2018-11-29 21:56 wxyww 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 模板 只是有几个容易出错的地方 第45行容易忘记 第54行里面的cnt 和siz 容易忘记 第56行是根据id判断不是val 第60行siz 容易忘记 第64行是siz+1不是siz+cnt 第77行和82行等于的情况容易忽略 代码 一言 记忆或会消失,但我的心会记着承诺。 阅读全文
posted @ 2018-11-29 21:47 wxyww 阅读(331) 评论(0) 推荐(0) 编辑
摘要:平衡树 平衡树就是一种可以在log的时间复杂度内完成数据的插入,删除,查找第k大,查询排名,查询前驱后继以及其他许多操作的数据结构。 Treap treap是一种比较好写,常数比较小,可以实现平衡树基本操作的一种平衡树。treap的平衡是基于随机化。是将堆与二叉查找树结合起来所得到的数据结构。 tr 阅读全文
posted @ 2018-11-27 21:52 wxyww 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 首先肯定要树形dp,一直没想到怎么用左偏树。如果不断弹出又不断地合并复杂度不就太高了。瞄了眼题解才知道可以直接用大根树。然后记录出当前这棵左偏树的大小(树里面所有点的薪水之和)以及点的个数。然后不断的删点。直到薪水满足条件为止。 代码 cpp include include incl 阅读全文
posted @ 2018-11-27 19:53 wxyww 阅读(155) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 左偏树的模板题,参考左偏树学习笔记 对于这道题我是用一个并查集维护出了哪些点是在同一棵树上,也可以直接log的往上跳寻找根节点 代码 cpp include include include include include include using namespace std; ty 阅读全文
posted @ 2018-11-27 19:40 wxyww 阅读(260) 评论(0) 推荐(0) 编辑
摘要:主要应用 首先要知道左偏树是用来干什么的。如果给我们两个优先序列,然后让我把这两个优先队列合并成一个优先队列。如果直接用堆,就是将一个队列里面的数不断弹出然后扔到另一个队列里。复杂度是$O(n)$n为队列中数的个数。但是用左偏树就可以做到$log(n_1 + n_2)$。 PS:为了便于讨论,本文所 阅读全文
posted @ 2018-11-11 17:08 wxyww 阅读(347) 评论(1) 推荐(2) 编辑
摘要:Day0 路上紧张到不行。特别担心今年会挂掉。 Day1 一塌糊涂 T1似乎是积木大赛的原题。当时只用了个分治的做法在洛谷上水过去了。考场上发现能被卡成$n^2$ T2看了很久只好写了个exgcd,最后10分钟发现是个完全背包。哎。写完过不了大样例啊啊啊。果断删掉,又不小心把iostream库改了, 阅读全文
posted @ 2018-11-07 16:25 wxyww 阅读(313) 评论(0) 推荐(0) 编辑
摘要:题面 T1 思路 考虑一下每个数会与其他位置的哪些数字遇到。显然每隔gcd(n,m,k)个数都会遇到一次。所以只要看一下将给出的所有数字全部对gcd(n,m,k)取模是否能包含从0到gcd(n,m,k) 1的所有数就行了。 代码 cpp include include include include 阅读全文
posted @ 2018-11-06 14:12 wxyww 阅读(192) 评论(0) 推荐(0) 编辑
摘要:题面 T1 思路 直接预处理出两个数组,然后用树状数组维护一下就行了。注意树状数组开两倍空间 代码 cpp include include include include include include include using namespace std; typedef long long l 阅读全文
posted @ 2018-11-05 15:06 wxyww 阅读(173) 评论(3) 推荐(0) 编辑
摘要:题面 T1 思路 把题目读错了。P[i][j]单调不升我看成单调上升了23333 ~~然后正解是忽略上面这句话?~~然后我就A了??? 用f[i][j]表示前i场赢了j场的概率,那么将当前这一场赢或输分类dp就好了。 代码 cpp include include include include in 阅读全文
posted @ 2018-11-04 20:33 wxyww 阅读(171) 评论(0) 推荐(0) 编辑
摘要:比赛链接 T1 思路 按照斐波那契的式子到着往前推就行,f[i]=f[i+2] f[i+1],当找到某个值使得f[i] = 0,f[i+1] = 1的时候就停止。 代码 cpp //https://www.luogu.org/problemnew/show/P4994 include include 阅读全文
posted @ 2018-11-03 16:00 wxyww 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题面 T1 思路 因为0的个数超过了一半,所以只要将拍完序后,最中间的数到想得到的中位数之间的每个数都变成S即可。 代码 cpp include include include include include include using namespace std; typedef long lon 阅读全文
posted @ 2018-11-02 17:09 wxyww 阅读(259) 评论(0) 推荐(0) 编辑
摘要:题面 T1 思路 就是先dfs一遍这棵树,先访问根节点,然后访问右孩子,然后左孩子。最后找出这个序列的最长上升子序列 然后一不小心,把第37行的ans写成了a,瞬间爆零 代码 cpp include include include include include include include us 阅读全文
posted @ 2018-11-02 15:04 wxyww 阅读(272) 评论(0) 推荐(0) 编辑
摘要:题目链接 思路 考虑用单调栈,栈顶为最大元素。当得到一个新值得时候,将这个值宇栈顶比较。因为栈顶是前面的最大元素。所以只要当前元素比栈顶大,那么肯定比前面的都大。只要将这个元素乘上前面的个数就行了。 然后考虑对于像5,4这样的情况应该怎么办。因为4比5小,所以当前四的贡献就是将前面的每个值都加上一遍 阅读全文
posted @ 2018-11-01 17:56 wxyww 阅读(325) 评论(0) 推荐(0) 编辑
摘要:题面 T1 思路 裸地等比数列求和。~~然而考试的时候并不会~~。学会了一种很nb的等比数列求和的方法。 假如我们要求$\sum\limits_{i = 1}^n{x^i}$,那么我们设$P=\sum\limits_{i = 1}^n{x^i}$,容易发现,P的x进制表示就是1111....111, 阅读全文

点击右上角即可分享
微信分享提示