题目要求要求在满足约束条件的情况下,使小的序号尽力靠前。
坑点就在这里,小的序号尽量靠前并不是代表字典序,它要求多种情况时,先使1靠前(可能1只能在第2或第3位 那么就要使它在第2位),其次2,3。。而不是在当前情况下,该位最小是哪个就输出哪个
所以直接拓扑排序,或者优先队列都是错的,因为这样都只能保证字典序最小。可以参考代码后面的样例理解
正确做法应该是 反向建图后,用最大值优先的优先队列...
分类:
其他好文 时间:
2014-07-22 00:28:38
阅读次数:
210
http://acm.hdu.edu.cn/showproblem.php?pid=3998求LIS的长度,并且求有多少组互不相交的LIS求组数用最大流建图如下:if(dp[i]==1)add(S,i,1) ; if(dp[i]==ans)add(i+n,T,1) ;if(j>i && dp[j.....
分类:
其他好文 时间:
2014-07-22 00:04:33
阅读次数:
194
上下界网络流的问题严格的分,可以分为四类吧。1:无源汇可行流 sgu 1942:有源汇可行流 poj 2396 这题比较好,我建图建了将近200行3:有源汇最大流 zoj 3496 这题比较劲爆,需要两次二分4:有源汇最小流 hdu 3157 sgu 176下面三种都是先转换成无源汇的来做,所以重....
分类:
其他好文 时间:
2014-07-21 08:15:26
阅读次数:
236
题目地址:ZOJ 3348
仍然是一道竞赛问题的网络流问题,但是这道题再用上次的竞赛建图方法就不行了,5000场比赛,明显会超时,于是需要换种建图思路了。上一道经典竞赛问题戳这里
上一道的胜负转换是利用专门给比赛建一个点,通过对比赛双方的流向来控制胜负关系,这里的建图方法更加巧妙(膜拜想出这个方法的大牛。。。),是先假设其中一方获胜,用mp[a][b]来表示a赢b的次数,将a与b连边,权值为m...
分类:
其他好文 时间:
2014-07-19 13:11:19
阅读次数:
289
题目地址:HDU 4292
水题。
由于每个人只能有1份,所以需要拆点限制流量。建图方法为,建一源点与汇点,将食物与源点相连,权值为食物额数量,将饮料与汇点相连,权值为饮料数量。。然后将人进行拆点为i和i‘,将对应的i与i’连边权值为1,将i与它所对应的YES的食物连边,将i‘与它所对应的YES的饮料连边,一次求最大流。
代码如下:
#include
#include
#include...
分类:
其他好文 时间:
2014-07-18 23:03:52
阅读次数:
281
题目地址:HDU 3046
最小割第一发!其实也没什么发不发的。。。最小割==最大流。。
入门题,但是第一次入手最小割连入门题都完全没思路。。。sad。。对最小割的本质还是了解的不太清楚。。
这题就是对每两个相邻的格子的边界都要进行加边,然后求最大流就OK了。
RE了好长时间,注意遍历加边的时候要从1开始,而不是0开始,因为0是源点的。。。(也许只有我才犯这种错误吧。。。)建图不多说了。。...
分类:
其他好文 时间:
2014-07-18 21:31:05
阅读次数:
235
题目地址:HDU 3435
这题刚上来一看,感觉毫无头绪。。再仔细想想。。发现跟我做的前两道费用流的题是差不多的。可以往那上面转换。
建图基本差不多,只不过这里是无向图。建图依然是拆点,判断入度出度,最后判断是否满流,满流的话这时的费用流是符合要求的,输出,不能满流的话,输出NO。
代码如下:
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-07-18 21:28:17
阅读次数:
193
题目地址:HDU 3277
这题跟这题的上一版建图方法差不多,只不过需要拆点。这个点拆的也很巧妙,既限制了流量,还只限制了一部分,以前一直以为拆点会全部限制,原来也可以用来分开限制,学习了。
建图方法为:建一源点与汇点,将女孩进行拆点,拆成i和i+n,将i与源点连边,权值为mid,将i与i+n连边,权值为k,再将男孩与汇点连边,权值为mid,这时可以配对的就将i与相应的男孩连边,权值为1,不能...
分类:
其他好文 时间:
2014-07-18 14:11:49
阅读次数:
281
昨天又搭建了一次Android的开发环境,尝试了好几种方式,也遇到了一些问题,在此分享一下。 注意:官网公布的最新版本号的SDK和ADT(23.0.0),对于和Eclipse集成的开发环境是有BUG存在的。搭建完毕建立HelloWorld測试的时候,src和layout文件下的文件都为空。...
分类:
移动开发 时间:
2014-07-18 12:01:25
阅读次数:
345
题目:poj3020
题意:给出一个图,让你用最少的1*2的纸片覆盖掉图中的所有*出现过的地方。基本裸的最小边覆盖。
分析:
最小边覆盖 = 点总数 - 最大匹配
所以就是转化为求最大匹配。
跟前面一道题目很相似,也是相同的建图方法,奇偶性建图。
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-07-17 10:21:44
阅读次数:
157