自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 我说我在总结谁会信。。

1.(x+y)%mod == (z+w)%mod,若y,z,w已知,则x = ((z+w)%mod - y +mod)%mod。

2014-07-31 23:17:37 803

原创 又见关系并查集 以POJ 1182 食物链为例

简单的关系并查集一般很容易根据给出的关系搞出一个有向的环,那么两者之间的关系就变成了两者之间的距离。对于此题:若u,v不在一个集合内,则显然此条语句会合法(暂且忽略后两条,下同)。那么将fu 变为 fv的儿子时需加一条权值为 w 的边,w 满足(w + ru)%3 = (rv+ (D == 1? 0 : 1))%3(ru,rv分别为u,v与fv的关系,即距离)。之所以在D == 2

2014-07-31 22:04:04 752

原创 初涉矩阵快速幂

一般用来加速递推。简单的,对于fib数列有,f0 = 1,f1 = 1,fn = fn-1 + fn-2(n >= 2)。则对于fn有:一般的,对于fn = A1*f(n-1) + A2*f(n-2)  + .... +A(n-1)*f1,有:又因为矩阵乘法满足结合律,所以可以用快速幂来求A^n,从而达到递推的效果。顺便即一个小技巧:

2014-07-31 19:37:46 681

原创 POJ 3680 Intervals (拆点 || 离散) && 最大费用流

对于第 i 个区间,拆为2*i

2014-07-24 11:50:41 572

原创 POJ 2135 Farm Tour && HDU 2686 Matrix && HDU 3376 Matrix Again 费用流求来回最短路

累了就要写题解,最近总是被虐到没脾气。来回最短路问题貌似也可以用DP来搞,不过拿费用流还是很方便的。可以转化成求满流为2 的最小花费。一般做法为拆点,对于 i 拆为2*i 和 2*i+1,然后连一条流量为1(花费根据题意来定) 的边来控制每个点只能通过一次。额外添加source和sink来控制满流为2。代码都雷同,以HDU3376为例。#include #include #

2014-07-23 21:12:15 926

原创 HDU 3395 Special Fish 最“大”费用最大流

求最大费用可以将边权取负以转化成求最小费用。然而此时依然不对,因为会优先寻找最大流,但是答案并不一定出现在满流的时候。所以要加一些边(下图中的红边)使其在答案出现时满流。设所有边的流量为1,花费如下图所示。显然最大花费是1001,而没有红边的情况下会得到3。#include #include #include #include #include #include #in

2014-07-22 20:49:58 967 2

原创 网络流小结

第一个问题:在原图无负环的前提上,为什么增广时的最短路算法不会陷入负环,即为什么增广后的残图不会出现负环?其实这是一个很浅显的问题,可是我纠结了好长时间,233。首先假设残图会出现负环,则其出现负环的原因必然是增广后某些反向弧被加入的残图中。而增广路肯定是无环的,所以这些反向弧只可能是负环的一部分。设这些反向弧组成的路径为P,P上各反向弧对应的边组成的路径为P',负环的

2014-07-09 00:14:21 1008

原创 POJ 4046 Sightseeing

最短路的变形,因为要加上最大的

2014-07-07 16:10:06 717

原创 初涉网络流 POJ 1459 Power Network

怒搞一下午网络流,又去我一块心病。从2F到SAP再到Dinic终于过掉了。可是书上说Dinic的时间复杂度为v*v*e。感觉也应该超时的啊,可是过掉了,好诡异。后两种算法都是在第一种的基础上进行优化。第一种方法就是不停的寻找增广路,后两种引进了层次网络的概念,第三种又#include #include #include #include #include #include

2014-07-03 00:04:41 895

原创 POJ 2286 The Rotation Game 迭代搜索深度 + A* == IDA*

感觉这种算法还是比较局限的吧,重复搜索是一个不好的地方,而且需要高效的估值函数来进行强剪枝,这点比较困难。迭代搜索深度是一个比较炫酷的搜索方式,不过有点拿时间换空间的感觉。首先迭代深度比较搓的写法是,首先设置一个阀值MaxH,初始为最小值。当在搜索深度Depth 另外一种比较吊的写法是二分搜索深度,若搜到则减小阀值,否则增大阀值。总之,迭代深度搜索就是通过改变深搜的深度来寻找最

2014-07-01 23:35:17 1023

原创 POJ 3131 Cubic Eight-Puzzle 双向BFS + HASH

超赞的一道搜索题,麻烦到没朋友,

2014-07-01 15:11:15 828

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除