[Luogu 2073] 送花】的更多相关文章

很容易想到的平衡树,加个维护区间和. 只需要插入和删除操作即可. kth其实都不用的,最小和最大可以从根节点log n一直向左/一直向右跑到叶子节点而求得. 记得每插入完一个点一定要更新区间和!!更新区间和!!更新区间和!! 我就因为没更新,导致出来答案都是随机的,有时候对,有时候不对. 关于平衡树不多说啦,关于平衡树(Treap)的教程请看这里. 上代码. #include <cstdio> #include <cstdlib> #include <cstring>…
原题传送门 这题需要用到Splay 我们用一棵splay维护金钱 考虑c<=1000000 我们珂以把每种价格现在对应的美丽值存在一个a数组中 这样讲有珂能不太清楚qaq,还是对着操作一个一个讲 操作一: 先在这棵splay中查找是否有这种花的金钱 如果有,直接跳过 如果没有,a[c]=m,把金钱为c的花的美丽值存下,把两个所求答案更新,把c插入平衡树 操作2,3: 执行所有操作之前先把inf,-inf插入平衡树 删除最小就是删除-inf的后继,删除最大就是删除inf的前驱 但还要加上特判,在后…
思路&心路 一眼认定沙比提 写的比较慢,写了1小时吧 开心的交上去 卧槽,只有20? 不服不服,拿着题解的代码去对拍 Emma,<100没问题 100000数据错了,还只是错了一个数据 debug 啊debug啊 以为是数据是0的锅 终于早出了小样例 卧槽,这std不对啊,md 又换了个std 绝望的乱改一通 最后发现是tm vis数组开小了 其实第一遍就能过的 ╮(╯▽╰)╭ 代码 #include <iostream> #include <cstdio> #def…
这题...一眼set...但是打了一会儿.. 记录一下每个价格对应的美丽度,顺便充当vis数组,如果美丽度不为0,说明set里已经有了... 删除好说,删*s.begin()和*--s.end()就好,但是记得删之前判一下size,否则--s.end()会可能RE #include<cstdio> #include<iostream> #include<set> #define R register int using namespace std; inline int…
权值线段树的模板题 然而AC后才发现,可以用\(\tt{set}\)水过-- 权值线段树类似于用线段树来实现平衡树的一些操作,代码实现还是比较方便的 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define ls p<<1 #define rs p<<1|1 #define mid ((l+r)>>1) using n…
平衡树实际很简单的 以下讲解都以Luogu P3369 [模板]普通平衡树为例 我不会带指针的Splay,所以我就写非指针型的Splay Splay是基于二叉查找树(bst)实现的 什么是二叉查找树呢?就是一棵树呗,但是这棵树满足性质:一个节点的左孩子一定比它小,右孩子一定比它大 比如: 这就是一棵最基本二叉查找树 对于每次插入,它的期望复杂度大约是lognlogn级别的,但是存在极端情况,比如9999999 9999998 9999997.....1这种数据,会直接被卡成n^2级别 在这种情况…
https://www.luogu.org/problemnew/show/2073 自己yy,明显错 #include <bits/stdc++.h> using namespace std; ; ; #define gc getchar() struct Node{ int w, b, bef; }flower[N]; int Ans1, Ans2, opt, W, B, Max, Min; map<int, bool> Map; , tot = ; inline int re…
虽然有点久远  还是放一下吧. 传送门:https://www.luogu.org/contest/show?tid=754 第一题  沉迷游戏,伤感情 #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; ],last,now,sum[],s; deque<lon…
题目链接:http://www.luogu.org/problem/show?pid=1268#sub -------- 这道题费了我不少心思= =其实思路和标称毫无差别,但是由于不习惯ACM风格的题目,没有打答案之间的换行,wa了好几次 解决所有"构造"问题都要按照如下的步骤: 寻找特例.特征 建立模型 一般化模型 寻找特例 (1) 我们假设结点数为1,显然答案为0,因为这棵树的边集为空. (2) 当结点数为2时,答案就是d[1][2],即(1,2)的距离. (3) 当结点数为3时呢…
2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best programmer in the world! Now he regularly takes part in various programming contests, attentively listens to problems analysis and upsolves problems. But…