• 2024-08-23浅谈 pb_ds 库
    大部分是在wiki搬运的,只是方便我看简介pb_ds库封装了很多数据结构,比如哈希(Hash)表,平衡二叉树,字典树(Trie树),堆(优先队列)等。就像vector、set、map一样,其组件均符合STL的相关接口规范。部分(如优先队列)包含STL内对应组件的所有功能,但比STL功能更多。可以使用begin()和e
  • 2024-08-19__gnu_pbds::tree 用法简介
    __gnu_pbds::tree用法简介概述pbds即平板电视,里面实现了很多数据结构,NOI系列赛事可以使用,但很多OJ和网站无法使用。其中有__gnu_pbds::tree,是平衡树,支持查找位置、查找第\(k\)大、分裂、合并。功能远强与std::set。性能实现是红黑树,空间常数是Treap的\(1.5\)倍,时
  • 2024-07-21c++的一些科技
    pd_ds需要#include<bits/extc++.h>usingnamespace__gnu_pbds;usingnamespace__gnu_cxx__gnu_pbds::priority_queue注意可能会与std::priority_queue冲突。定义方法:__gnu_pbds::priority_queue<T,Compare,Tag,Allocator>T:类型名Compare:严格弱化的比较类型
  • 2024-02-01平衡树
    能pbds写pbds无pbds写fhq#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+3;intrt,tot,lc[N],rc[N],val[N],rd[N],sz[N];#definelslc[p]#definersrc[p]voidUp(intp){sz[p]=sz[ls]+sz[rs]+1;}voidSpl(intp,int
  • 2023-08-12浅析C++gnu pbds库
    pbds俗称平板电视,__gnu_pbds自带了封装好了的平衡树、字典树、hash数据结构,速度快过\(STL\)Ⅰ.引入想要使用\(pbds\),必须先要添加头文件,\(pbds\)并不属于bits/stdc++.h的一部分,所以也只能在\(g++\Mingw64\)的环境下食用。以下是头文件:#include<bits/extc++.h>以下是命名空
  • 2023-07-18pbds的应用
    pbds大法好头文件及命名空间#include<bits/extc++.h>usingnamespace__gnu_pbds;调用tree<pair<int,int>,null_type,less<pair<int,int>>,rb_tree_tag,tree_order_statistics_node_update>rbt;tree<pair<int,int>,null_type,less<pai
  • 2023-06-13Educational Codeforces Round 150 (Rated for Div. 2) 题解
    https://codeforces.com/contest/1841https://codeforces.com/contest/1841/problemsD.PairsofSegmentshttps://codeforces.com/contest/1841/problem/D因为\(n\)只有\(2000\),所以考虑枚举每一对\((i,j)\)满足区间有交集并且\(i\neqj\)。如果有交集,就合并。然后
  • 2023-06-11AtCoder Beginner Contest 305 题解
    https://atcoder.jp/contests/abc305/tasks_printE-ArtGalleryonGraph冷知识:md这题赛时没做出来/cy刚看到题:这是什么题啊,\(K,h\)都\(1e5\)能做吗/fn确实能做。考虑类似SPFA的操作。设\(a_x\)表示\(x\)还可以对距离最多为\(a_x\)的点产生贡献,然后就直接
  • 2023-05-12[学习笔记+做题记录] 数位 DP
    一、数位DP你说的对,但是数位DP是用于解决一种数位统计类似的问题,往往数据范围很大,比如\(10^9,10^{12},10^{18}\)甚至更大,这种DP一般需要记录当前考虑到第几位,是否贴上界/下界,以及一些题目里的东西,需要具体题目具体分析。二、HDU3652-B-numberhttps://acm.hdu.ed
  • 2023-05-12洛谷 P4544 [USACO10NOV]Buying Feed G - 题解
    https://www.luogu.com.cn/problem/P4544感觉是很没意思的DP+DS优化,以前做过几道更难的题:https://codeforces.com/contest/1788/problem/Ehttps://atcoder.jp/contests/abc288/tasks/abc288_f这种题只要是让我写总是能把代码整的伤痕累累(逃第一眼:我艹不就是一个sbDP吗
  • 2023-05-11AtCoder 好题选做
    AtCoderRegularContest091-F-StrangeNimhttps://atcoder.jp/contests/arc091/tasks/arc091_d清北学堂讲的一道题,我艹感觉这结论很难猜啊。做这种题一定是先写爆搜打表啊,先写了一个博弈论求SG函数:然后发现了一个规律:\(\text{SG}(nk,k)=n\)。还有一个规律:当\(n<k
  • 2023-05-11AtCoder Beginner Contest 298 题解
    题面:https://atcoder.jp/contests/abc298/tasks_printA-JobInterview直接模拟即可。#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#include<ext/pb_ds/hash_policy.hpp>usingnamespace
  • 2023-05-08Codeforces Round 872 (Div. 1 & Div. 2)
    这场寄大了。Mypredictorsay-101pts。https://codeforces.com/contest/1824https://codeforces.com/contest/18252A.LuoTianyiandthePalindromeString因为给出的\(s\)是一个回文串,所以答案只可能是\(-1\)或者\(n-1\),只需要看一下删掉哪一个即可,然后判定,这些都
  • 2023-04-30Codeforces Round 869 (Div.1 & Div.2) 题解
    2A.Politics因为编号为\(1\)的人一定不会离开,那么最后留下的人一定要和编号为\(1\)的人的所有参数都一致,所以计数即可。#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#include<ext/pb_ds/hash_policy.hpp>u
  • 2023-04-11Codeforces Round 864 (Div. 2) 题解
    A.LiHuaandMaze题目保证了两个点的哈密顿距离至少为\(2\),所以他们不会相邻。只要有点在角上答案就是\(2\),在边上但不在角上就是\(3\),否则就是\(4\)。#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<ext/pb_ds/tree_policy.hpp>#includ
  • 2023-03-29[做题记录] 构造题选做
    一、CF743C-Vladikandfractions(*1500)目标:给定\(n\),构造\(x,y,z\)满足\(x\neqy,x\neqz,y\neqz\)且\(\dfrac{2}{n}=\dfrac{1}{x}+\dfrac{1}{y}+\dfrac
  • 2022-11-02P8671 [蓝桥杯 2018 国 AC] 约瑟夫环 题解
    约瑟夫环有\(\mathcalO(n)\)做法相信大家都知道。这里就不在介绍了,这里给出一个不知道这个结论的\(\mathcalO(n\logn)\)简单做法。考虑直接模拟题意,每次循环往后数
  • 2022-08-21pbds 学习记录
    #pbds学习记录pbds库提供了一些常用的数据结构,常数上通常比对应的常用stl更快,所以值得整理一下。##堆为了使用pbds的堆,我们要使用如下头文件```cpp#inclu