03 2019 档案
摘要:昨天还是前天,我看了一眼题,说:SPFA跑负环! 然后看了看我的代码,发现好像不是很正确.看了看我的时间和谷神的时间,好像很优秀啊. 枚举点进去dfs,对于点x,如果能更新连向的点的dis就更新,并判断是否"来过"这个点了.如果来过说明是在一个负环里了,return并输出"YES",否则dfs这个点
阅读全文
摘要:干网络流! 之前刷过一点校oj的网络流,现在忘得差不多了,开始在loj刷一下网络流24题。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN=210,MAXM=5010; char bu
阅读全文
摘要:我又开新坑啦:QTREE系列. 刚开始以为QTREE就是LCT,然后发现第一题是个树链剖分,于是以为QTREE就是树链剖分.写完后发现第二题是个树上倍增. 综上,QTREE就是树上询问的一些题. 来源:http://172.20.6.3/Categories.asp?page=11&order=AS
阅读全文
摘要:不,你想多了,我并没有发明. 动态树?我会LCT! 然后加上在线和可持久化的前缀,这道题就变得面目可憎了起来. 对于一个森林,刚开始没有边.你需要维护下面的操作. 操作1:给定x,y,令x的父亲为y. 操作2:给定t,x,k,求第t个版本中x的第k个祖先.如果没有输出0. 操作3:给定t,x,求第t
阅读全文
摘要:线段树合并就是把两个维护相同区间的线段树合并到一块. 什么叫维护相同区间?就是每次操作的最大的那个区间是一样的,根节点维护的区间一样,根节点的左儿子维护的也一样,右儿子维护的也一样,左儿子的左儿子.... 显然只需要建树的时候都建成一样的就好了.一般我们采用动态开点. 由于线段树合并的均摊复杂度是l
阅读全文
摘要:这是一道很有意思的题.不要被国家集训队的标签吓到,我们仔细思考跳的时候的性质. 玩过跳棋的应该都可以接受题意. 可以把每次'跳'分为两种:一种是中间的棋子以两边的棋子为'中轴棋子'跳,显然想向哪跳就向哪跳,只会跳过一个棋子.一种是两边的棋子向中间跳.这种可能不能跳:左中和中右间的距离相同,无法再跳.
阅读全文