自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

量子流逝

-----------------------------I Will Fight For My Dream

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ 1659 Frogs' Neighborhood havel度序列定理的应用

havel度序列定理就是个贪心,每次先选度数大的点和其他点连一条边 证明画个图就可以了,如果度数最大的那个点没有和度数靠前的点连边的话那么一定可以通过交换边的方式让它和所有度数靠前的点连边,那么就能证明havel定理的转换过程是充要的~ #include #include #include #include #include #include #include #include #incl

2012-02-29 20:43:14 776 2

原创 POJ 1236 Network of Schools tarjan强连通缩点

tarjan算法很犀利,不解释,不解释。。。 缩点然后判断度数 #include #include #include #include #include #include #include #include #include #include #define pb push_back using namespace std; const int maxn = 111; vectorg[

2012-02-29 15:42:00 674

原创 hdu 4160 dolls 最少路径覆盖

最少路径覆盖 == n - 最大匹配  #include #include #include #include #include #include #include #include using namespace std; const int maxn = 1011; const int add = 500; struct zz { int x; int y;

2012-02-28 10:56:23 574

原创 ZOJ Monthly, February 2012 - H Matrix (ZOJ 3578)

开始看到这题以为是二维线段树,但是二维的线段树从来没写过也不知道怎么写,昨天晚上突来灵感,可以用复杂度为c2的一个方法,每次比较两个矩阵是否相交,然后更新矩阵的值,速度很快!zoj月赛ac这题的人大部分都是这种方法吧,内存才200k。。。法克,我早该想到!!! #include #include #include #include #include #include #include using

2012-02-27 12:17:54 1018

原创 zoj Monthly, February 2012 - D Under Attack II (zoj 3574)

先离散化建一个二部图,两边都有n个点,然后从左边依次往上扫描,插入线段,每次统计新插入的线段后和原来的线段有多少个交点,这样就知道新插入的线段会增加多少个区域,可以用树状数组来解决这个问题 #include #include #include #include #include #include #include #include #include using namespace std; c

2012-02-26 10:45:33 1012

原创 zoj 3573 Under Attack

居然还有O(n)的方法,太神奇了,下午没ac居然是理解错题意了,以为是线段而不是点,汗。。。 #include #include #include #include #include using namespace std; const int maxn = 15011; int n; long long int a[maxn]; long long int b[maxn]; int x,y

2012-02-25 20:02:45 870

原创 poj 3463 Sightseeing 将spfa进行到底!!!

谁说这题只能用dijkstra!!!劳资就用spfa + 搜索dp把它秒了!! 不过真tm的难写!!细节之多是难以想象的!! wa了无数次之后我甚至开始怀疑我的方法的正确性,主要是因为图是多重图啊!!还是有向的啊!!!!dp的时候很恶心,你要考虑自环边!!你要考虑重边!尤其是长度相同的多重边和自环边!!还要考虑长度大1的路径啊。。。考虑各种各样的情况,测试数据不会手下留情!!最恶心的这tm还是搜

2012-02-22 20:42:06 934

原创 poj 2532 坑爹题!!

这题不是坑爹的么!!带宽,带宽不是双向的吗!现在我才反应过来那个all directional貌似是定向的意思。。。水题啊!!!!极度水!!灰常水!!你赢了zoj,再也不刷你了!! ps:网络流也刷的差不多了,开始刷别的了! #include #include #include #include #include #include #include #include using names

2012-02-21 16:12:12 827 1

原创 zoj 2539 Energy Minimization

题目看起来好像很变态很难的样子,其实就是最小割。。。╮(╯▽╰)╭ #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int maxn = 411; const int end = 410; c

2012-02-20 17:54:56 713

原创 SPFA的两个优化

SPFA与堆优化的Dijkstra的速度之争不是一天两天了,SPFA用在分层图上会比较慢。SPFA是按照FIFO的原则更新距离的,没有考虑到距离标号的作用。实现中 SPFA 有两个非常著名的优化:SLF 和 LLL。    SLF:Small Label First 策略。    实现方法是,设队首元素为 ,队列中要加入节点 ,在  时加到队首而不是队尾,否则和普通的 SPFA 一

2012-02-19 14:39:42 1111

原创 hdu 4106 Fruit Ninja

准确的说这道题已经卡了我3个月了,3个月前我还是连spfa都写不好的小菜鸟,3个月前我还在刷水dp,3个月前写个水二分都会出错,3个月前我很无力。。。转眼,经过一个寒假的训练,虽然还是菜鸟,但也算得上是一个犀利的菜鸟了有木有!! 这题是poj 3680的一个变形,分析下,poj 3680 是区间对点的限制!!!而这道题,是点对区间的限制!!!如果选取取一个数,那么每个包含这个数且长度为 M 的连

2012-02-18 22:05:46 1540

原创 poj 3680 Intervals 经典的建图!

建图想了好久,想到了一种不需要s和t的建图方法,先离散化,具体建法是 i + 1 连 i ,正容量是 k ,逆容量是0 ,费用是0,然后根据区间的限制,连接 ai 和 bi (都是离散化后的数据),正向容量是 1,逆向是0,正费用是 -w,逆费用是 w(把正向费用和逆向费用互换求最大费就变成求最小费了),这样就不需要 s 点和 t 点,求最大费,这种图求最大费的方法就是消负环了;可是消负环的代

2012-02-18 21:33:04 1308

原创 sgu 185 Two shortest 网络流卡内存神题!!!!

方法很多,可以用最短路 + 最大流,也可以用最小费最大流; 费用流有两种做法,一种很容易想到,就是从s连出流量为2的一条边到1,然后求最小费最大流,如果最大流为2,且最小费等于两倍的最短路,就说明存在,只要输出这两条路就可以了; 还有一种费用流的方法是直接两次 spfa 找到最小费用最大流增广每次增广流量增加1,要注意的是逆向的费用,因为题目中的道路是无向的,网络流里的处理方法是加上两条有向边

2012-02-17 15:25:04 805

原创 poj 2175 Evacuation Plan 最小费,判断负圈的存在

开始悲剧的tle了。。。又检查了一遍代码。。发现没有错啊!!!最后逛了一下神犇们的博客发现了这段话!!!!!“spfa的时候沿途记录每个点是由哪个点更新来的。那么,在第n+1次入队的时候的那个循环,我们就一定可以得到一个负权环。顺着最后那个点往前找环。注意!由于更新的复杂性,最后那个点不一定在最终负环里(依赖于spfa的写法)”   fuck!!! next,我隐约感觉spfa判断负圈应该

2012-02-16 18:55:28 1189 1

原创 poj 3422 Kaka's Matrix Travels 最小费用最大流

我的第一道费用流,难得一次性ac啊,哈哈!不过 debug 了很久。。。建图要小心,要特别小心!!!!!这道题和大一暑假集训做的那个采蘑菇的 gondar 很像,记得哥当时用了一个犀利的一逼的dp搞定了。。。其实一点都不犀利。。。然后 racebug 问我如果有 10 个人怎么办,我想尼玛 10 个人就开个 11 维数组呗。。- -!然后 racebug 说那就果断超时了嘛。。。又说。。那果断就是

2012-02-15 21:11:24 852

原创 Codeforces Round #105 (Div. 2) D

搜索dp~注意 w 和 b 的值要大于0 ~否则会越界~ #include #include #include #include #include #include #include using namespace std; const int maxn=1024; const double eps = 1e-13; double dp[maxn][maxn]; bool vis[maxn][m

2012-02-14 18:06:54 579

原创 Codeforces Round #105 (Div. 2) C

今天中午做了一下div2,发现c是一道极其猥琐的题目,注意这个测试数据 10 9 0!!!坑爹! #include #include #include #include #include using namespace std; const int maxn=111; const int maxc=50000; int n,aa,b; int sum,tmax,temp; int a[maxn]

2012-02-14 13:30:10 489

原创 poj 3155 Hard Life 网络流——最大密度子图

这是一道网络流中难度很大的题目,今天终于把它a掉了,但是想想还是觉得这题很难,建图难就算了,主要是会卡精度!!!我对精度一窍不通,只知道它很坑爹!!wa了11次,确实被坑了。。希望区域赛不会有这种题目 方法: 二分搜索 hardness factor f ,构造函数 E - f *V(E是导出子图中的边数,V是其中的点数),计算它的最大值,如果大于 0 则增加 f 的下限,小于 0 减少

2012-02-09 19:09:48 960 2

原创 poj 2987 Firing ------最大权闭合图

网络流里的最大权闭合图和最大密度子图还是挺有意思的 方法:s连接正权点,点权赋给边,t连接负权点,点权的绝对值赋给边,原图两点之间的边用inf64正向容量连接,逆向为0. 这样就能把每一个最小割和每一个闭合图一一对应,利用最小割的性质很好证明。然后求出最小割,用所有正权和减去得到最大获利。因为最小割把图分成了两部分,所以最后求最小人数可以用一个贪心,方法是从s出发广度优先搜索,能达到的节点都是

2012-02-07 21:34:23 662

原创 hdu 1733 Escape

拆点,假设 T 时间可以完全撤离,那么每个点就拆成2*T个点,为什么是2*T个点呢?因为在两点间还要有一个流量的限制,所以个数变成T的两倍。点和点之间的容量限制很原始,因为每位置最多只能有一个人,所以正向流量是1,因为时间是正向流动的,所以逆向容量是0. 最后根据实验,这题的答案不会超过50。亏哥还用了个二分搜索加dinic,早知道直接用ek加暴力枚举,更快更好写!!!如果不是最大流就增加一层,

2012-02-07 15:00:54 829

原创 Codeforces Round #104 (Div. 1) E Lucky Queries

坑爹的360!劳资好不容易把div1的E搞出来了一编译居然被360怀疑哥的代码是病毒,擦!!坑爹么!!!尼玛敲个代码容易么!!!伤不起啊!反正劳资用这段病毒AC了!! 线段树延迟更新,只是要在比赛那么短的时间内敲出来并且没有错误很难,看到那么多红名的一个小时不到就把这题a了,这就是红名和蓝名的差距么!!!什么时候哥才能红名呢。。。。 #include #include #include #

2012-02-05 21:34:14 804

原创 Codeforces Round #104 (Div. 2) E Lucky Subsequence

迟到的ac,不错的题目,要预处理 n!mod 1000,000,007 和 n!对于 mod 1000,000,0007 的逆元,否则第22组数据的时候会超时!算 l乘到r mod p的时候只要算 r!mod p 再乘以 (l-1)! 对 mod p 的逆元,预处理复杂度O(n),查询复杂度O(1),是一个相当快速的方法! 至于那种 “分解素因子 + 二分幂取模 ” 的方法有没有这个快我不知道,

2012-02-02 17:13:21 1968

原创 topcoder srm 531 div2 600pt

鸟题目 ...代码写的超难看,终于过了。。。 #include #include using namespace std; const int mod=1000000007; class NoRepeatPlaylist{public: long long int dp[111]; bool vis[111]; long long int c[111][111];

2012-02-01 23:17:11 760

gcc学习资料

c语言 gcc简介 主要特性和命令格式 适合初学者入门

2012-12-16

空空如也

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

TA关注的人

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