- 博客(5)
- 收藏
- 关注
原创 RMQ模板题 poj3368
在线算法,预处理O(n*log n),询问 O(1) 第一次学RMQ做的模板题。。。注意f【】数组保存的值,所以询问L,R的时候知道L和前面的值不一样再进行询问 另外切开k的位置不需要计算那块有多少连续的,因为f【k】的值本身就记录了。。。 #include #include #include #include #include #include #include using
2015-09-23 14:27:06 272
转载 poj3694 连通图+LCA
不缩点,直接在原图中找LCA,求桥时记录每个节点的父亲节点 找LCA时,先将两点上升到同一层次,然后一起再向上找父亲节点,遇到桥就把桥标记删除,画一下图就清楚了#include #include #include #include #include #include using namespace std; #define maxn 100010 #define FOR(i,j,k) for(
2015-09-18 20:57:25 298
原创 hdu5438 拓扑+并查集 2015长春网赛
刚学拓扑排序,记录图用链式向前星 用vis和queue删 度为1的点 然后并查集或dfs算结果。。 拓扑很容易死循环+查代码查了好久。。。 #include #include #include #include #include #include using namespace std; #define FOR(i, l, r) for(int i = l; i <= r; i
2015-09-15 18:15:03 346
原创 poj3177 双连通分量
无向图,存成有向图,一条边存成两条 强连通的时候就会导致重边形成环,用fa记录来自的边,注意并且用flag判断是否只有一条那样的反向边 求需要添多少条边成双连通,记度为1的强连通分量数为ans,结果为( ans + 1 ) / 2 #include #include #include #include using namespace std; #define maxn 5000+5 #de
2015-09-14 17:33:31 312
原创 hdu 1024 dp
dp[i][j]取i段,最后一位为a[j]和的最大值 dp[i][j]=max(dp[i][j-1]+a[j]+dp[i-1][k]+a[j]) (i-1 用pre数组代替dp[i]那一维,每次加取一段的时候滚动,储存j位之前的最大值 最后输出m段时前n位最大值maxx 太渣理解得特别困难。。。手动模拟一下=,= #include #include #inclu
2015-09-09 18:35:59 211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人