RoNgDaZhOnG

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2017年3月12日

摘要: 第一次写传说中的数据结构套数据结构,果然坑了一晚上,不过回头想想也没什么难的。二维线段树是一颗基于X轴的线段树,每颗该线段树的节点又是一颗基于Y轴的线段树。X轴线段树的某个节点所表示的Y轴线段树 维护的是该X轴线段树的两个儿子所表示的Y轴线段树维护的数据之和,如果X轴线段树的这个节点没有儿子,则其表 阅读全文
posted @ 2017-03-12 09:34 学无止境-1980 阅读(172) 评论(0) 推荐(0) 编辑

摘要: Codevs1732,这道题要求求fibonacci数列的第N项,1 <= n <= 100000000000000,非常大,普通的O(N)的求法肯定会TLE,所以我们需要用的快速幂矩阵乘法,在O(logN)的时间内即可求出。矩阵的乘法是这样的:我们定义X(i,j)表示矩阵第i行第j列的元素。我们定 阅读全文
posted @ 2017-03-12 09:33 学无止境-1980 阅读(111) 评论(0) 推荐(0) 编辑

摘要: 半平面交第一次真的好难写啊。。前后加起来起码弄了7小时。半平面交的算法思想并不复杂: 1、将所有向量按极角大小从小到大排序,向量(x,y)的极角=atan2(y,x),当两个向量的极角相等时选择性的保留在较左边的那个 2、运用一种数据结构:双端队列,用phead表示双端队列的头位置,pend表示双端 阅读全文
posted @ 2017-03-12 09:32 学无止境-1980 阅读(156) 评论(0) 推荐(0) 编辑

摘要: 定义一个multiset集合S:multiset <int> S;如果有重复元素一定要记得使用multiset,stl set默认从小到大排序,upper_bound(x)返回集合中第一个大于x的元素地址,lower_bound(x)返回集合中第一个大于等于x的元素地址。我们可以这样定义一个迭代器: 阅读全文
posted @ 2017-03-12 09:31 学无止境-1980 阅读(171) 评论(0) 推荐(0) 编辑

摘要: 定义:在一个无向连通图中,若删除某点后,图变成不连通,则称该点为该图的割点; 若删除某边后,图变成不连通,则称该边为该图的桥。 双连通分量有点双连通分量和边双连通分量,分别表示 删去该分量中任意一个点(或者边),该分量还是相连的。 点双连通分量的求法至今我还没找到。。可能在竞赛中不怎么用,边双连通分 阅读全文
posted @ 2017-03-12 09:30 学无止境-1980 阅读(112) 评论(0) 推荐(0) 编辑

摘要: 强连通分量求解算法有Kosaraju和Tarjan_SCC,Kosaraju需要进行两遍dfs,而Tarjan只需一遍dfs,可见Tarjan的运行效率比Kosaraju高,常数小。而且以后求图的双联通分量、割、桥之类的还需要用到Tarjan,所以学习Tarjan的价值更大一些。Tarjan算法的思 阅读全文
posted @ 2017-03-12 09:29 学无止境-1980 阅读(98) 评论(0) 推荐(0) 编辑

摘要: 拓扑排序有两种思路,我用的是基于bfs的:将入度为0的点加入队列,每次处理队列中的点,将该点从图中删除 并 相应减少 该点所能到达点 的 入度,若有点入度被减为0,则将该点加入队列,一直这样继续直到所有点被处理完(que.size()==0)。还有一种基于dfs的思路:L:用于存储拓扑排序后的点的序 阅读全文
posted @ 2017-03-12 09:26 学无止境-1980 阅读(103) 评论(0) 推荐(0) 编辑

摘要: 将田地上的食物取负,求图的最小费用流即为最大费用流的相反数。(ps第一次听说还可以这样用思路:用spfa求最短路,沿着最短路增广。 阅读全文
posted @ 2017-03-12 09:25 学无止境-1980 阅读(120) 评论(0) 推荐(0) 编辑

摘要: 广搜计算层次图,在层次图上深搜。标准dinic模板。 阅读全文
posted @ 2017-03-12 09:24 学无止境-1980 阅读(86) 评论(0) 推荐(0) 编辑