数据结构
-
T2
- description
给定N个正整数
对于一个询问((l,r)),你需要求出(max(A_i xor A_{i+1} xor A_{i+2} ... xor A_j)),其中(l leqslant i leqslant j leqslant r)
(N leqslant 12000, M leqslant 6000)
强制在线 - solution
求前缀和以后即变为求区间里两个数的异或最大值。
分块维护即可
- description
-
T3 CF163E
- description
给你一些串,有串的出现和消失两个操作,动态查询一个串的子串有多少个出现了 - solution
在AC自动机的fail树上点修改链询问。
- description
-
- solution
离线之后在AC自动机的fali树上点修改,子树询问。
- solution
-
T5 [Sdoi2013]森林
- solution
启发式合并+主席树
- solution
图论
-
T1 CF274D
- description
给你一个(n imes m)矩阵,矩阵的每个元素是(1...9)或者(-1)
你需要选择一个列的排列,使得矩阵的每行去掉(-1)之后是单调非降的
(n imes m leqslant 10^5) - solution
拓扑排序,需要加入中间点防止边数过多。
- description
-
T2 2016清华校赛 B
- description
有一个n*m的未知矩阵R,矩阵的每个元素都是0到k的整数
有c个约束条件,每个约束条件是以下的一种
(1.R(x_1,y_1)+R(x_2,y_2)<S)
(2.R(x_1,y_1)+R(x_2,y_2)>S)
其中(|x_1-x_2|+|y_1-y_2|=1)
你需要输出,是否满足所有条件的矩阵,如果有,是否唯一 - solution
由于是二分图,所以可以变为差,转化为查分约束系统。
据说解是否唯一可以通过跑最大解和最小解来判断(跑最长路和最短路)。
- description
-
T3 CF160D
- description
给定n个点m条边
询问每条边属于以下哪种情况
1.一定在最小生成树上
2.可能在最小生成树上
3.一定不在最小生成树上 - solution1
在做kruskal的时候考虑一组权值相同的边。
若一条边两个端点已经在一个联通块,则一定不在最小生成树上。
否则有可能在,特别的,如果是桥则一定在。
和bzoj1016的思路基本一致 - solution2
先求出最小生成树
则最小生成树上的边有可能在,不放先假设他们一定,之后再作修正。
考虑剩下的边,若它加入以后形成的环的最大值小于它,那么一定不在,等于它的话所有等于它的边都应该被标记为可能。
打标记有两种思路,一种是倍增数组,一种是类似树形dp.
- description
-
T4 SPOJ - COMPANYS
- description
给你一个带权无向图,每条边非白即黑,
现要构造一个生成树使得恰有K条白色的边,使权值和最小 - solution
二分无限制的最小生成树和有限制的最小生成树的差,均摊到每个白色的边上。
- description
-
T5 [Sdoi2010]星际竞速
。。。看错题了,确实是有上下届的费用流