自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

EM LGH

It's Time to Make History

  • 博客(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 &lt...

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&gt...

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关注的人

提示
确定要删除当前文章?
取消 删除