- 博客(4)
- 收藏
- 关注
原创 Tarjan求割点
模板题:luogu3388题面: 给出一个n个点,m条边的无向图,求图的割点。思路: 对于每一个没有访问过(dfn[n]==0)的顶点,用tarjan算法以此点为根生成一颗dfs树 low记录与该节点连接的dfs序最小的节点的dfs序(时间戳),dfn则记录该节点的dfs序。 当第一个节点回溯到其父节点时,若low[son]>dfn[father],说明该子节点不与任何在以该子节点为根的
2017-10-31 11:39:55 241
原创 luogu1525 关押罪犯
luogu1525 普及+ / 提高题面: N(N<20000)个点,M(M<100000)条边。每条边有一个权值。将图分成两部分,删除跨越两部分的边,使整个图内权值最大的边最小。思路: 有权并查集 1、将各边按照从大到小的顺序排序(优先队列)struct tEdge() { ... inline void addEdge(...) {...} bool operat
2017-10-30 11:47:19 146
原创 [SHOI2009] 会场预约
luogu2161 省选 / NOI-题面: 设计一个数据结构,支持两种操作: 1. A i j 添加一个新的预约[i, j],并删除所有与其冲突的预约。返回此次操作删除的预约的个数。 2. B 返回当前的预约总数。 数据范围:操作数<=200000思路: 线段树+染色 1、颜色。每个预约均用一种颜色代表struct tColor { int left, right, nu
2017-10-30 07:45:55 536
原创 [SDOI2009]HH的项链
luogu 1972 提高+/ 省选-题面: 输入长度为N(N<50000)的数列,进行M(M<=200000)次询问,每次询问一个区间,输出数列对应区间内出现不同数字的个数。例: 1 2 3 4 3 5 [1, 3] : 3 [2, 5] : 4 [1, 5] : 5思路: 离线查询。 1、读入数列,第一次读入时,将每个数第一次出现的位置启用。int main()
2017-10-27 09:29:21 115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人