- 博客(69)
- 收藏
- 关注
原创 CF743C Vladik and fractions 裂项
这题,好骚啊code:#include <iostream> using namespace std; int main() { int n; cin>>n; if(n==1) cout<<-1<<endl; else { cout<<n<...
2019-12-31 15:32:00 109
原创 BZOJ 4860: [BeiJing2017]树的难题 点分治+线段树
这个思路还是非常巧妙的.困难在于我们需要同时维护以 $x$ 为分治中心,延伸出颜色相同/不同的最大值. 不同的话直接将权和相加,相同的话还需要减掉重复部分,这就比较难办.但是我们发现,当以 $x$ 为分治中心时,$x$ 每一个儿子为根的子树的延伸颜色都是相同的.所以我们可以将每一个点的所有儿子按照延伸颜色排序,然后维护两颗线段树:相同与不同.当我们在点分治时...
2019-12-31 15:05:00 120
原创 【luoguP3676】 小清新数据结构题 推式子(LCT维护)
挺有趣的一个数据结构题,不必用 LCT 维护,只不过 LCT 比较好写 ~code:#include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 200008 #define ll long long ...
2019-12-31 10:06:00 98
原创 BZOJ 3796: Mushroom追妹纸 后缀自动机+拓扑排序+DP
就是喜欢后缀自动机,yy了一个只用后缀自动机解决的方法. 对 3 个串建立广义后缀自动机,然后建立后缀树.标记出每个点在0/1/2个串中是否作为子串出现,然后将后缀树中 2 串结尾的所有子树都设为危险节点.然后对于 SAM 来一个拓扑序DP,我们开始的时候默认危险节点的最大值是 -inf,然后 2 结尾节点最大值为 len(2)-1.然后这么转移一下就好了.最...
2019-12-31 08:52:00 166
原创 BZOJ 3091: 城市旅行 LCT
这个合并还是相当复杂的. code:#include <cstdio> #include <cstring> #include <string>#include <map>#include <algorithm> #define N 50005 #define ll long long ...
2019-12-30 20:28:00 92
原创 BZOJ 2752: [HAOI2012]高速公路(road) 线段树
这个期望显然可以表示成总价值/总方案数. 然后我们用线段树依次维护 $\sum val[i]$,$\sum val[i]\times i$,$\sum val[i]\times i^2$ 即可.code:#include <cmath>#include <cstdio> #include <string>#include <...
2019-12-30 15:36:00 103
原创 BZOJ 4631: 踩气球 线段树+vector
对于每个节点开一个 vector 就好了.code:#include <cstdio> #include <vector> #include <string> #include <cstring>#include <algorithm> #define N 100006 #define lson no...
2019-12-30 11:11:00 92
原创 BZOJ 5102: [POI2018]Prawnicy 贪心+堆
貌似是套路题.假设给定我们一些区间,那么这些区间交集的左端点是左端点最靠右区间的左端点.所以我们将所有区间按照左端点从小到大排序,然后用堆维护前 k 大的右端点.那么,对于枚举到的第 $i$ 个区间来说,右端点就是第 $k$ 大的右端点与当前区间右端点的较小值.code:#include <cstdio> #include <string>...
2019-12-28 16:51:00 127
原创 BZOJ 5091: [Lydsy1711月赛]摘苹果 概率
推一推式子后发现每个点不论走几步被访问到的概率都是 $\frac{d_{i}}{2m}$code:#include <cstdio> #include <string> #include <algorithm> #define N 100070 #define ll long long #define mod 100000...
2019-12-28 16:10:00 79
原创 BZOJ 2212: [Poi2011]Tree Rotations 线段树合并
code:#include <cstdio> #include <string> #include <algorithm> #define N 200007 #define ll long long using namespace std; namespace IO { void setIO(string ...
2019-12-28 15:30:00 80
原创 BZOJ 5341: [Ctsc2018]暴力写挂 边分治+虚树
和【洛谷5115】挺像的.都是统计信息的时候是包含两个树的,那就在一个树上边分治,另一个树上跑一个虚树dp就好了.式子这么拆:$dep[i]+dep[j]-(dep[LCA(i,j)]+dep'[LCA'(i,j)]$$\Rightarrow dep[i]+dep[j]-\frac{1}{2}(dep[i]+dep[j]-dis(i,j)]-dep'[LCA'(i,j...
2019-12-28 14:25:00 87
原创 永远都调不完的代码
code:#include <cstdio>#include <algorithm>#include <cstring>#include <string> #include <vector>#include <map> #define N 100007#define inf 0x3f3f...
2019-12-27 15:48:00 104
原创 洛谷P5115 Check,Check,Check one two! 边分治+虚树+SAM
绝对是我写过最长的一份代码了. 这个快敲吐了.通过这道题能 get 到一个套路:两颗树同时统计信息的题可以考虑在个树上跑边分治,把点扔到另一颗树的虚树上,然后跑虚树DP.具体地,这道题中我们发现 $LCP$ 长度是反串后缀树 $LCA$ 深度,$LCS$ 是正串后缀树 $LCA$ 深度.我们建出正反两串后缀树后,将长度大于 K1/K2 的点的深度置为 0,然后跑一个边分+...
2019-12-27 15:48:00 108
原创 BZOJ 2870: 最长道路tree 边分治
注意一下在双指针的时候那个 mxdep 初始值应该是 -1,因为可能不满足最小值.code:#include <cstdio> #include <string> #include <map>#include <cstring> #include <vector> #include <set> ...
2019-12-27 09:03:00 119
原创 BZOJ 3304: [Shoi2005]带限制的最长公共子序列 动态规划
800年没写DP了,一个傻逼题调半天.code:#include <cstdio> #include <cstring> #include <algorithm> #define N 504 #define inf -10000 #define setIO(s) freopen(s".in","r",stdin) using na...
2019-12-26 20:34:00 90
原创 BZOJ 3629: [JLOI2014]聪明的燕姿 数论+爆搜
推式子没推出来什么特别有用的结论.看题解后发现这尼玛就是一个大爆搜啊.以后碰到这种推式子推不出来,或者没啥思路的时候可以考虑爆搜解决.code:#include <cstdio> #include <string> #include <cstring>#include <algorithm> #define...
2019-12-26 16:46:00 116 1
原创 LOJ #558. 「Antileaf's Round」我们的 CPU 遭到攻击 LCT
这个和 QTREE5 的套路是一样的,就是维护一个深度最深/浅的距离和,然后合并一下就好了.code:#include <map>#include <string> #include <cstdio> #include <cstring> #include <algorithm>#define N ...
2019-12-26 14:57:00 221
原创 UOJ #207. 共价大爷游长沙 随机化+LCT维护子树信息
注意:$LCT$ 在 $link$ 的时候必须要 makeroot.假如要将 $y$ 连到 $x$ 上:如果只是将 $y$ Access 并 splay 然后直接连到 $x$ 上的话你会发现 $y$ 在 $splay$ 中所有左儿子其实都在 $(x,y)$ 之间,而这显然就不对了.code:#include <cstdio> #include <...
2019-12-26 11:53:00 102
原创 BZOJ 4448: [Scoi2015]情报传递 DFS序+主席树
对与每一个时刻用主席树维护一下 DFS 序即可. LCA 的话树剖求解比较快.code:#include <cstdio> #include <string> #include <cstring>#include <algorithm> #define N 200006 using nam...
2019-12-26 09:35:00 89
原创 BZOJ 2213: [Poi2011]Difference 细节题
大体上的思路不算太难,但是细节巨多无比. 注意我们必须要选一个,所以在记录极差的同时还要记录一下上一次出现的位置.code:#include <cstdio> #include <algorithm> #define setIO(s) freopen(s".in","r",stdin) using namespace...
2019-12-25 20:54:00 116
原创 CF1268B Domino for Young 黑白染色
这个黑白染色的思路真的是很巧妙啊code:#include <cstdio> #include <string>#include <algorithm> #define ll long long using namespace std; namespace IO { void setIO(string s) ...
2019-12-25 20:20:00 290
原创 BZOJ 3727: PA2014 Final Zadanie 树形DP
非常有趣的一道题....code:#include <cstdio> #include <string>#include <algorithm> using namespace std; namespace IO { void setIO(string s) { string in=s+".in";...
2019-12-25 14:59:00 91
原创 BZOJ 4726: [POI2017]Sabota? 树形dp
code:#include <cstdio> #include <string> #include <algorithm> #define N 500005 #define inf 0.0000000001using namespace std; namespace IO { void setIO(string...
2019-12-25 09:35:00 104
原创 CF1137F Matches Are Not a Child's Play LCT+树状数组
这道题的思路很神啊 ~ #include <cstdio> #include <string>#include <cstring>#include <algorithm> using namespace std; const int N=200006; int cur_id;...
2019-12-24 20:55:00 79
原创 BZOJ 2238: Mst DFS序+KDtree
明明可以用二维数点来做啊,网上为什么都是树剖+线段树呢 ?code:#include <cstdio> #include <cstring> #include <algorithm> #define N 100006 #define inf 1000000#define ll long long #define IO(s...
2019-12-24 18:55:00 217
原创 CF1111C Creative Snap 线段树
用线段树模拟一下就好了~code:#include <cstdio> #include <algorithm> #define lson ls[x]#define rson rs[x] #define N 10000006 #define ll long long #define setIO(s) freopen(s".in","r",s...
2019-12-24 13:54:00 112
原创 CF1111E Tree 动态规划+LCT
这个题的思路非常好啊. 我们可以把 $k$ 个点拿出来,那么就是求将 $k$ 个点划分成不大于 $m$ 个集合的方案数. 令 $f[i][j]$ 表示将前 $i$ 个点划分到 $j$ 个集合中的方案数.那么有 $f[i][j]=f[i-1][j-1]+f[i-1][j]*(j-fail[i])$,其中 $fail[i]$ 代表 $i$ 到根这条路径上祖先数量. ...
2019-12-24 13:37:00 201
原创 BZOJ 3530: [Sdoi2014]数数 AC自动机+dp
思路不难,但是细节还是挺多的,要格外注意一下.code:#include <cstdio> #include <queue> #include <cstring> #include <algorithm> #define N 2005 #define ll long long #define mod 1000...
2019-12-23 20:43:00 70
原创 BZOJ 5108: [CodePlus2017]可做题 贪心
code:#include <cstdio> #include <cstring>#include <algorithm> #define N 100020 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std;st...
2019-12-23 18:49:00 123
原创 BZOJ 2654: tree 二分+最小生成树
code:#include <cstdio> #include <algorithm> #define N 50020 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; struct data { int ...
2019-12-23 16:44:00 85
原创 BZOJ 3754: Tree之最小方差树 枚举+kruskal
你发现平均值不会很大,所以直接暴力枚举平均值,然后跑 4*100 次最小生成树取最小值即可.code:#include <cstdio> #include <cmath> #include <algorithm> #define N 2005 #define ll long long #define setIO(s) freope...
2019-12-23 16:28:00 83
原创 BZOJ 5110: [CodePlus2017]Yazid 的新生舞会 线段树
非常好的一道思维题. code:#include <cstdio> #include <cstring> #include <algorithm> #include <vector> #define lson x<<1 #define rson x<<1|1 #define N 5000...
2019-12-23 15:43:00 131
原创 BZOJ 4009: [HNOI2015]接水果 整体二分+DFS序+扫描线
以前一直以为这道题很恶心,事实证明还好,好多地方脑残写丑了. code:#include <cstdio> #include <string> #include <cstring>#include <algorithm> #define N 50003 using namespace std; ...
2019-12-21 16:00:00 91
原创 BZOJ 4491: 我也不知道题目名字是什么 线段树+离线
code:#include <string> #include <cstring> #include <cstdio> #include <algorithm> #define N 50003 #define lson now<<1 #define rson now<<1|1 ...
2019-12-21 09:33:00 107
原创 模拟赛T2 线段树优化建图+tarjan+拓扑排序
然而这只是 70pts 的部分分,考场上没想到满分怎么做(现在也不会)code:#include <cstdio> #include <string>#include <stack> #include <queue> #include <cstring>#include <algorithm&...
2019-12-21 08:38:00 92
原创 模拟赛 T1 费马小定理+质因数分解+exgcd
求:$a^{bx \%p}\equiv 1(\mod p)$ 的一个可行的 $x$.根据欧拉定理,我们知道 $a^{\phi(p)}\equiv 1(\mod p)$而在 $a^x\equiv 1(\mod p)$ 这个式子中 $x$ 是存在很多个解的.这些解之间存在着循环节,使得任意解 $x$ 可以被表示成循环节的倍数.我们设这个循环节为 $cir$.由于已知 $\phi(p...
2019-12-20 18:58:00 172
原创 模拟赛 T3 DFS序+树状数组+树链的并+点权/边权技巧
题意:给定一颗树,有 $m$ 次操作.操作 0 :向集合 $S$ 中加入一条路径 $(p,q)$,权值为 $v$操作 1 :给定一个点集 $T$,求 $T$ 的并集与 $S$ 中路径含交集的权和.(就是如果路径 $i$ 与 $T$ 有交集,就产生 $v_{i}$ 的贡献)数据范围:路径长度 $\leqslant 20$,$1\leqslant n,m \leqslant 10^5$...
2019-12-20 17:56:00 111
原创 BZOJ 3132: 上帝造题的七分钟 树状数组+差分
这个思路很巧妙啊 ~code:#include <cstdio> #include <algorithm> #define N 2050#define ll int #define setIO(s) freopen(s".in","r",stdin) using namespace std; struct BIT { ...
2019-12-19 20:48:00 71
原创 BZOJ 5161: 最长上升子序列 状压dp+查分
好神啊 ~打表程序:#include <cstdio> #include <cstring> #include <algorithm> #define N 140000000#define ll long long #define mod 998244353 #define setIO(s) freopen(s".in","r"...
2019-12-19 14:07:00 84
原创 【洛谷P3835】 【模板】可持久化平衡树
可持久化非旋转treap,真的是又好写又好调 ~code:#include <cstdio> #include <cstdlib>#include <algorithm> #define N 500007 #define lson t[x].ls #define rson t[x].rs #define inf 21474836...
2019-12-19 09:44:00 94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人