bzoj
peter_819
这个作者很懒,什么都没留下…
展开
-
【最小生成树】【LCT】【bzoj2594】水管局长数据加强版
题目大意: 给定无向图,动态进行删除边,查询两点路径最大边权值。 题解: 1. 首先考虑离线操作倒序进行插入边操作。 2. 之后考虑新加进来的边一定会在原来的最小生成树上产生环,找到环上的最大权删去就可以更新最小生成树。 3. 就相当于加边时判断新加的边两端点在原最小生成树上路径最大值和此边边权关系,新加的小就断开原来的最大边,连接新边。 4. 3的过程可以用LCT维护。 5. LC原创 2017-01-01 20:51:35 · 676 阅读 · 0 评论 -
【bzoj1093】【tarjan+dp】最大半联通子图
题意 导出子图:对图(U,V)(U,V),有(U′,V′)(U',V')满足 U′∈UU' \in U V’是V中所有与U’相连的边 半连通子图:对图(U,V)(U,V),对任意u∈Uu \in U v∈Uv \in U满足uu到vv或 vv 到uu 有一条有向路径题解 首先考虑对于一个强连通分量一定是一个半连通导出子图,考虑缩点,对于缩点之后的DAG,在一条链上的强连通分量就为一个半联原创 2016-12-26 22:08:34 · 404 阅读 · 1 评论 -
【bzoj2049】【LCT】洞穴勘测
题意:维护森林支持动态插入一条边,删除一条边,查询两点连通性 数据范围:100%的数据满足n≤10000, m≤200000 题解:LCT模板题,注意link-cut时提根即可 #include <iostream> #include <cstdio> #include <cstring> #define MAXN 21000 using namespace std; struct nod原创 2016-12-28 16:07:30 · 444 阅读 · 0 评论 -
【bzoj2002】【LCT】弹飞绵羊
题意:给一段序列和k[i]k[i]表示从ii能弹到i+k[i]i+k[i],要求支持动态修改k值,查询由i点几次能被弹出序列长度 数据范围:对于100%的数据n<=200000,m<=100000 题解:首先对于一个点,可以从这个点向i+k[i]i+k[i]连一条边,i+k[i]>ni+k[i]>n时连向n这个点,显然一个点只向后连一条边,就是一棵树,求得答案就是i节点在以n+1为根的树中的原创 2016-12-28 16:24:55 · 275 阅读 · 0 评论 -
【bzoj2243】【树链剖分】【线段树】SDOI2011染色
题目大意: 给定一棵有N 个节点的无根树和 M 个操作,操作有2类: 将节点A 到节点B路径上所有点都染成颜色 C 询问节点A到节点B路径上的颜色段数量(连续相同颜色被认为是同一段),如”112221”由3段组成:”11”.”222”和”1”。 请你写一个程序依次完成这 M 个操作。 数据范围: 题解: 对树上的路径进行操作, 区间覆盖,区间查询,一瞅原创 2016-12-28 16:51:17 · 296 阅读 · 0 评论 -
【AC自动机】【bzoj3940】Censoring
题意: 给一些模板串和一个长串,删除长串中所有模板串,输出剩下的串; 做法: 对模式串维护AC自动机,对长串维护一个栈,边压栈边匹配,匹配到了就弹掉。 代码: #include <iostream> #include <cstdio> #include <cstring> #include <queue> #define MAXN 100001 using namespace std; names原创 2017-03-25 21:29:44 · 326 阅读 · 0 评论 -
【KMP】【poj3167】【bzoj1729】Cow Patterns
题意 给定一个顺序序列表示奶牛的排列顺序,定义串a=b当且仅当a的每位的排名=b的每位的排名。 题解 预处理出前i位中j出现的次数,由于编号很小,处理出类似前缀和,暴力查询排名即可。已知排名之后就直接kmp。 代码 #include <iostream> #include <cstdio> #include <cstring> #define MAXN 100001 using namespac原创 2017-03-25 21:40:25 · 574 阅读 · 0 评论 -
【trie树】【bzoj1819】电子字典
题意 给一些模式串,一些编辑方式 一些待查询串,求该串是否不用编辑就是一个模式串 若不是,求编辑一次变为的模式串数量。 题解 模式串建成trie树,询问1直接查询 询问2 dfs即可。 代码 #include <iostream> #include <cstdio> #include <cstring> #define MAXN 200001 using namespace std; s原创 2017-03-25 21:53:34 · 349 阅读 · 0 评论