<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Wall_F的专栏]]></title><description><![CDATA[这家伙很懒，他正在思考。]]></description><link>https://blog.youkuaiyun.com/Wall_F</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Wall_F]]></copyright><item><title><![CDATA[HDU 2013 杭州网络赛 1007 & HDU 4744 Starloop System]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/11717099</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/11717099</guid><author>Wall_F</author><pubDate>Mon, 16 Sep 2013 00:59:55 +0800</pubDate><description><![CDATA[网赛开始10分钟后开始读这题，然后立马发现这是求循环流，这一题的做法是拆点后求在满足最大流的情况下的最小费用。。
即要使得第i个每个城市属于wi个循环圈，把每个点拆成两个点，建立超级源点s，汇点t，对每个城市i来说s->i连wi的流量，费用为0的边。
i+n->t，连wi的流量，费用为0的边。 
城市与城市之间，i>j+n 连流量为1，费用为cost的边。跑最小费用最大流即可。
最后判断最]]></description><category></category></item><item><title><![CDATA[HDU 1394 Minimum Inversion Number]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/11664709</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/11664709</guid><author>Wall_F</author><pubDate>Sat, 14 Sep 2013 00:05:08 +0800</pubDate><description><![CDATA[找以前的水题切，但是忘记以前怎么想的呢，TAT...
于是乎重新推了一次，找到了新的规律，时间复杂度大概是O（nlogn）+O(n^2)+O(n);如果数据规模还大一点就TLE了。。。
首先求出逆序对数，对于初始队列维护四个值：
1、第一个值为左边比A[i]大的数Left[i]；
2、左边比A[i]小的数Left2[i]；
3、右边比A[i]大的数Right[i]；
4、第i个数A[i]]></description><category></category></item><item><title><![CDATA[LCA（最近公共祖先）算法的理解。]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/11265137</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/11265137</guid><author>Wall_F</author><pubDate>Fri, 06 Sep 2013 20:29:35 +0800</pubDate><description><![CDATA[第一次用matlab画的图，好丑额。]]></description><category></category></item><item><title><![CDATA[二叉排序树]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/11152169</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/11152169</guid><author>Wall_F</author><pubDate>Thu, 05 Sep 2013 16:28:58 +0800</pubDate><description><![CDATA[学习二叉排序树时写的代码。
二叉排序树是一颗动态，是在动态的过程中生成的，不是一成不变的。
特点是：根节点左边的比根节点的值小，右边的值比根节点大，平均查找复杂度为O(log2*n);
用二维指针来建树，注意new node()，返回的是结构体指针。
#include 
#include 
#include 
#include 
#include 
#include 
#inc]]></description><category></category></item><item><title><![CDATA[高级数据结构书籍 第二章]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/11019765</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/11019765</guid><author>Wall_F</author><pubDate>Tue, 03 Sep 2013 21:12:43 +0800</pubDate><description><![CDATA[问题：新单词接龙。
规则：
（1）单词变换：单词Wi添加一个字母，删除一个字母或修改一个字母可以得到单词Wi+1;
（2）字典序接龙：W1,W2,W3....Wn，满足字典序。
将所有单词存在hash表或者Trie树中，然后判断一个单词能否通过变换得到另一个单词，如果能够，则连边。得到的是一个DAG图，做图上最长路径即可。
#include 
#include 
#include 
#i]]></description><category></category></item><item><title><![CDATA[HDU 1496 Equations]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/10948337</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/10948337</guid><author>Wall_F</author><pubDate>Mon, 02 Sep 2013 20:52:34 +0800</pubDate><description><![CDATA[学哈希表时的习题。
H:a*x1^2+b*x2^2 = -(c*x3^2+d*x4^2)，H关于X轴对称，由于会有负下标，我们把函数位置右移maxn，即H（x+maxn) = H(maxn-x)，原函数关于X=maxn对称。
所以我们可以先算出X右边的所有数，然后通过左边的数去映射右边的数，把所有可能解相加。因为x1,x2,x3,x4可以为正数或者为负数两种情况，所以在找到一种可能解时，需要把]]></description><category></category></item><item><title><![CDATA[UVA 11248	Frequency Hopping]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/10020691</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/10020691</guid><author>Wall_F</author><pubDate>Sat, 17 Aug 2013 11:01:40 +0800</pubDate><description><![CDATA[开始最大流判断容量是否大于C，如果不大于，然后去找最小割中的弧，枚举容量为C，TLE。因为最小割中的弧增加的容量一定会引起最大流的增加，于是我们可以再原有最大流的基础上枚举最小割容量中的弧，然后判断是否大于等于C即可。
楼主渣代码。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#]]></description><category></category></item><item><title><![CDATA[HDU 3081 Marriage Match II]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/10012195</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/10012195</guid><author>Wall_F</author><pubDate>Fri, 16 Aug 2013 22:42:32 +0800</pubDate><description><![CDATA[一开始RE,然后枚举m，TLE了，然后有许多重边TLE。。
还有HDU 3081 似乎最大流解法是错误的，目前还木有想到正解。
渣代码略。。]]></description><category></category></item><item><title><![CDATA[HDU 3416 Marriage Match IV]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9991073</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9991073</guid><author>Wall_F</author><pubDate>Thu, 15 Aug 2013 21:49:16 +0800</pubDate><description><![CDATA[S->T流代表路径，在最短路树上的点连边既可，容量为1. 似乎题目保证有解。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 1610;
const int INF =]]></description><category></category></item><item><title><![CDATA[POJ 2135 Farm tour]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9978763</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9978763</guid><author>Wall_F</author><pubDate>Thu, 15 Aug 2013 10:15:27 +0800</pubDate><description><![CDATA[一般的方法大家都知道，把无向边拆成有向边，超级源点向源点加一条流量为2，费用为0，超级汇点类似。
但是有个问题需要注意，如何保证拆边之后的路径一定是最优的呢？
比如说如下图：
a-b
a-c
b-c
c-d
可不可以走a->b->a->c->d呢？当然可以，但是由于拆边之后没有负费用，我们肯定能找到一条更优的路径。比如说a->c->d。由于是最小费用，所以通过这样的方法就保证了不会走]]></description><category></category></item><item><title><![CDATA[POJ 1087 A Plug for UNIX]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9965631</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9965631</guid><author>Wall_F</author><pubDate>Wed, 14 Aug 2013 15:39:39 +0800</pubDate><description><![CDATA[可以传递闭包之后做二分匹配，也可以直接最大流。
。。。]]></description><category></category></item><item><title><![CDATA[HDU 3395 Special Fish]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9954883</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9954883</guid><author>Wall_F</author><pubDate>Tue, 13 Aug 2013 20:52:23 +0800</pubDate><description><![CDATA[以前通过KM来解的，今天用最大费用最大流写一次，结果发现WA。。 后来才发现有一种情况没有考虑到，即首先满足的应该是最大费用，而不是流。。。
传送门
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

c]]></description><category></category></item><item><title><![CDATA[HDU 4240 Route Redundancy]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9927167</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9927167</guid><author>Wall_F</author><pubDate>Mon, 12 Aug 2013 15:47:39 +0800</pubDate><description><![CDATA[大意：在城市A->B之间通过所有路径一小时之内能通过最大的车辆(Maxflow)/所有边上通过最大车流量（cap）的那条叫做redundancy ratio。最小的redundancy ratio是前者最大的车流量的那一条（cap），问minimum redundancy ratio是多少。
思路：一开始想通过每次找增广路径时去找出最小的残余量，然后再找最大的，后来发现是错误的。其实在沿着残余网]]></description><category></category></item><item><title><![CDATA[POJ 2446 Chessboard]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9898517</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9898517</guid><author>Wall_F</author><pubDate>Sun, 11 Aug 2013 11:53:42 +0800</pubDate><description><![CDATA[经典的奇偶建图，这个模型有必要记一下。
网络流过了。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 40*40;
const int INF = 0x3f3f3f3]]></description><category></category></item><item><title><![CDATA[POJ 2195 Going Home]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9878567</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9878567</guid><author>Wall_F</author><pubDate>Sat, 10 Aug 2013 15:35:00 +0800</pubDate><description><![CDATA[测试模板。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 1010;
const int INF = 0x3f3f3f3f;

struct Edge
{
	int]]></description><category></category></item><item><title><![CDATA[UVA 10735 Euler Circuit]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9859965</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9859965</guid><author>Wall_F</author><pubDate>Fri, 09 Aug 2013 17:39:21 +0800</pubDate><description><![CDATA[大意 混合图中找欧拉回路
思路 混合图中判断是否存在欧拉回路的方法都是一样，只是如何去找欧拉回路的问题。
如何去找欧拉回路，满流后，如果图中已给出的无向边（e.cap > 0）有流流过，则把该边反向，如果没有，则不改，然后用套圈算法去找欧拉回路。
/*UVA 10735*/
#include 
#include 
#include 
#include 
#include 
#in]]></description><category></category></item><item><title><![CDATA[HDU 3523 Image copy detection & POJ 2516]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9664729</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9664729</guid><author>Wall_F</author><pubDate>Wed, 31 Jul 2013 10:48:11 +0800</pubDate><description><![CDATA[2道KM。HDU 3523题目长了点，POJ 2516 需要拆点来做KM。
/*HDU 3523*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

co]]></description><category></category></item><item><title><![CDATA[HDU 2853 Assignment & HDU 3315 My Brute]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9622241</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9622241</guid><author>Wall_F</author><pubDate>Mon, 29 Jul 2013 21:28:45 +0800</pubDate><description><![CDATA[两道的题型都是：给出现有的匹配，让你求匹配的权值最大时，改动的边数。
方法就是把边上标记，上标记的方法就是把权值扩大比N大的一个倍数，比如说N：50，那么我们就扩大55倍，原来已经存在的匹配边权值再加1，就这样，无论有原有匹的匹配边有多少条，一定要小于55，但这样，又标记出了，求得ans/55时，这个值就是最大的匹配权值，ans%55就是没有改变的匹配边。
/*HDU 2853*/
#incl]]></description><category></category></item><item><title><![CDATA[HDU 3722 Card Game]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9614163</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9614163</guid><author>Wall_F</author><pubDate>Mon, 29 Jul 2013 11:46:14 +0800</pubDate><description><![CDATA[最大费用圈覆盖，转换成图的匹配来解之。
/*HDU 3722*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 210;
const int IN]]></description><category></category></item><item><title><![CDATA[HDU 2448 Mining Station on the Sea]]></title><link>https://blog.youkuaiyun.com/Wall_F/article/details/9614135</link><guid>https://blog.youkuaiyun.com/Wall_F/article/details/9614135</guid><author>Wall_F</author><pubDate>Mon, 29 Jul 2013 11:45:16 +0800</pubDate><description><![CDATA[预处理轮船到各个港口的最短路径，然后KM解之即可。
/*HDU 2448*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 310;
const int INF = ]]></description><category></category></item></channel></rss>