2012年3月3日

HDU 2544 最短路 第一个图论问题。

摘要: 最短路Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9833Accepted Submission(s): 4225Problem Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M& 阅读全文

posted @ 2012-03-03 14:16 [S*I]SImMon_WCG______* 阅读(300) 评论(0) 推荐(0) 编辑

HDU 1166 敌兵布阵 我的第一棵树,线段树,树状数组。

摘要: 敌兵布阵Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12032Accepted Submission(s): 5237Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数 阅读全文

posted @ 2012-03-03 13:57 [S*I]SImMon_WCG______* 阅读(214) 评论(0) 推荐(0) 编辑

2012年2月29日

线段树模板及解释

摘要: 先摆模板。。。//线段树模板struct line{int left,right;//左端点、右端点int n;//记录这条线段出现了多少次,默认为0};struct line a[100];int sum;//建立void build(int s,int t,int n){int mid=(s+t)/2;a[n].left=s;a[n].right=t;if (s==t) return;a[n].left=s;a[n].right=t;build(s,mid,2*n);build(mid+1,t,2*n+1);}//插入void insert(int s,int t,int step)//要 阅读全文

posted @ 2012-02-29 22:48 [S*I]SImMon_WCG______* 阅读(513) 评论(0) 推荐(0) 编辑

2012年2月28日

多重背包模板

摘要: /*多重背包模板【若要求恰好装满,初始化时f[1...V] = -INF(求最大)或INF(求最小),f[0] = 0】【若费用==价值时,如硬币能组成多少钱,用背包做时,f[i(费用)] 必定 == i(最大价值) (设能组成i元) ,因为能组成i元。费用为i时,最大价值若少于i的x的话与能组成i元,矛盾(存在比x大的i),所以必定等于i元,如HDU2844】*/#include <set>#include <map>#include <list>#include <cmath>#include <ctime>#include &l 阅读全文

posted @ 2012-02-28 21:07 [S*I]SImMon_WCG______* 阅读(1396) 评论(0) 推荐(0) 编辑

2012年2月26日

母函数模板

摘要: /*母函数模板:有时候括号里的是无限个的话不需要n[],或直接和第i个括号有关系时不用c[],如最简答的变形题只改成i*i那题。c[],n[]用于有限个的时候。*/#include <set>#include <map>#include <list>#include <cmath>#include <ctime>#include <deque>#include <queue>#include <stack>#include <cstdio>#include <string># 阅读全文

posted @ 2012-02-26 22:17 [S*I]SImMon_WCG______* 阅读(659) 评论(0) 推荐(0) 编辑

2012年2月3日

STL简介

摘要: 1.STL是什么作为一个C++程序设计者,STL是一种不可忽视的技术。Standard Template Library (STL):标准模板库,更准确的说是 C++ 程序设计语言标准模板库。STL是所有C++编译器和所有操作系统平台都支持的一种库,说它是一种库是因为,虽然STL是一种标准,也就是说对所有的编译器来说,提供给C++程序设计者的接口都是一样的。也就是说同一段STL代码在不同编译器和操作系统平台上运行的结果都是相同的,但是底层实现可以是不同的。 令人兴奋的是,STL的使用者并不需要了解它的底层实现。 试想一下,如果我们有一把能打开所有锁的钥匙,那将是多么令人疯狂啊。STL的目的是标 阅读全文

posted @ 2012-02-03 16:03 [S*I]SImMon_WCG______* 阅读(524) 评论(0) 推荐(0) 编辑

2012年1月29日

位运算简介及实用技巧(四):实战篇

摘要: 下面分享的是我自己写的三个代码,里面有些题目也是我自己出的。这些代码都是在我的Pascal时代写的,恕不提供C语言了。代码写得并不好,我只是想告诉大家位运算在实战中的应用,包括了搜索和状态压缩DP方面的题目。其实大家可以在网上找到更多用位运算优化的题目,这里整理出一些自己写的代码,只是为了原创系列文章的完整性。这一系列文章到这里就结束了,希望大家能有所收获。Matrix67原创,转贴请注明出处。Problem : 费解的开关题目来源06年NOIp模拟赛(一) by Matrix67 第四题问题描述你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。 阅读全文

posted @ 2012-01-29 17:07 [S*I]SImMon_WCG______* 阅读(271) 评论(0) 推荐(0) 编辑

位运算简介及实用技巧(二):进阶篇(1)

摘要: ===== 真正强的东西来了! =====二进制中的1有奇数个还是偶数个我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longint;begin readln(x); c:=0; for i:=1 to 32 do beginc:=c + x and 1;x:=x shr 1; end; writeln( c and 1 );end.但这样的效率并不高,位运算的神奇之处 阅读全文

posted @ 2012-01-29 17:05 [S*I]SImMon_WCG______* 阅读(316) 评论(0) 推荐(0) 编辑

位运算简介及实用技巧(三):进阶篇(2)

摘要: 今天我们来看两个稍微复杂一点的例子。n皇后问题位运算版n皇后问题是啥我就不说了吧,学编程的肯定都见过。下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛。初始时,upperlim:=(1 shl n)-1。主程序调用test(0,0,0)后sum的值就是n皇后总的解数。拿这个去交USACO,0.3s,暴爽。procedure test(row,ld,rd:longint);varpos,p:longint;begin{ 1}if row<>upperlim then{ 2}begin{ 3} pos:=upperlim and not (row or ld or 阅读全文

posted @ 2012-01-29 17:05 [S*I]SImMon_WCG______* 阅读(310) 评论(0) 推荐(0) 编辑

位运算简介及实用技巧(一):基础篇

摘要: 去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个remake。当然首先我还是从最基础的东西说起。什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 an 阅读全文

posted @ 2012-01-29 17:03 [S*I]SImMon_WCG______* 阅读(229) 评论(0) 推荐(1) 编辑

位运算

摘要: 运算方法有六种:& 与运算 | 或运算 ^ 异或运算 ~ 非运算(求补) >> 右移运算 << 左移运算 运用这些基本的运算,我们可以解决acm所需的各种运算,给Bit赋1,赋0,给他的值取反,还有好多段操作。如下:功能 | 示例 | 位运算----------------------+---------------------------+--------------------去掉最后一位 | (101101->10110) | x >> 1在最后加一个0 | (101101->1011010) | x < < 1在最后加 阅读全文

posted @ 2012-01-29 15:58 [S*I]SImMon_WCG______* 阅读(306) 评论(2) 推荐(0) 编辑

【转载】Tarjan算法

摘要: 【转载】Tarjan算法在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量。直接根据定义,用双向遍历取交集的方法求强连通分量,时间复杂度为O(N^2+M)。更好的方法是Kosaraju算法或Tarjan算法,两者的时间复杂度都是O(N+M)。本文介绍的是Tarja 阅读全文

posted @ 2012-01-29 14:51 [S*I]SImMon_WCG______* 阅读(284) 评论(0) 推荐(0) 编辑

2012年1月26日

对ACM初学者的意见及推荐ACMer看的书

摘要: 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划练练:第一阶段:练经典常用算法,下面的每个算法打上十到二十遍,同时自己精简代码。因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时熟练hash表(要熟 阅读全文

posted @ 2012-01-26 17:43 [S*I]SImMon_WCG______* 阅读(318) 评论(0) 推荐(0) 编辑

搜索之深度优先【迷宫搜索】(判断是否n步恰好可以到达某点)

摘要: # include <iostream.h> # include <string.h> # include <stdlib.h> char map[9][9]; int n,m,t,di,dj; bool escape; int dir[4][2]={{0,-1},{0,1},{1,0},{-1,0}}; void dfs(int si,int sj,int cnt) { int i,temp; if(si>n||sj>m||si<=0||sj<=0) return; if(cnt==t&&si==di&&am 阅读全文

posted @ 2012-01-26 17:40 [S*I]SImMon_WCG______* 阅读(213) 评论(0) 推荐(0) 编辑

搜索之广度优先【三维迷宫】(判断从一点能否到达另一点,最少走几步)

摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>#include <queue>#include<algorithm>using namespace std;#define N 11typedef struct{ int x,y,z,steps;}triPoint;char map[N][N][N];int n;triPoint start, end;int dir[6][3]={{1,0,0}, {-1,0,0}, {0,1,0}, {0,-1,0}, {0,0,1}, {0 阅读全文

posted @ 2012-01-26 17:39 [S*I]SImMon_WCG______* 阅读(248) 评论(0) 推荐(0) 编辑

求最长递增子序列的长度

摘要: #include<stdio.h> #define N 10001 int main() { int a[N],i,j,k,n; while(scanf("%d",&n)!=EOF&&n) { for(i=0;i<n;i++) scanf("%d",a+i); j=0; for(i=1;i<n;i++) if(a[i]<a[j])//如果是最长非递减子序列a[i]<=a[j]... 阅读全文

posted @ 2012-01-26 17:38 [S*I]SImMon_WCG______* 阅读(164) 评论(0) 推荐(0) 编辑

大数相乘

摘要: void Mult(char fal[],char a[],char b[]) { int i,j,len1,len2,afal[210]; len1=strlen(a); len2=strlen(b); memset(fal,0,sizeof(fal)); memset(afal,0,sizeof(afal)); for(i=len1-1;i>=0;i--) { for(j=len2-1;j>=0;j--) afal[len1+len2-i-j-2]+=(a[i]-'0')*(... 阅读全文

posted @ 2012-01-26 17:36 [S*I]SImMon_WCG______* 阅读(207) 评论(0) 推荐(0) 编辑

求两个字符串的最长公共子序列的长度(动态规划)

摘要: # include<stdio.h># include<string.h># define N 1000int str[N+2][N+2];int max(int a,int b){if(a>=b) return a;else return b;}int main(){int i,j,la,lb;char str1[N+1],str2[N+1];while(scanf("%s%s",str1,str2)!=EOF){la=strlen(str1);lb=strlen(str2);for(i=0;i<=la;i++)str[0][i]=0; 阅读全文

posted @ 2012-01-26 17:35 [S*I]SImMon_WCG______* 阅读(899) 评论(0) 推荐(0) 编辑

大数相加

摘要: #include<stdio.h> #include<string.h> char sum[65]; void fun(char a[],char b[]) { int i,lena,lenb,len; lena=strlen(a); lenb=strlen(b); len=(lena<lenb)?lena:lenb; strrev(a);strrev(b); memset(sum,0,sizeof(sum)); for(i=0;i<len;i++) { sum[i]+=a... 阅读全文

posted @ 2012-01-26 17:33 [S*I]SImMon_WCG______* 阅读(163) 评论(0) 推荐(0) 编辑

HDU 2141 Can you find it?

摘要: Can you find it?Time Limit: 10000/3000 MS (Java/Others)Memory Limit: 32768/10000 K (Java/Others)Total Submission(s): 3758Accepted Submission(s): 935Problem DescriptionGive you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate if you can find the three numbers 阅读全文

posted @ 2012-01-26 13:23 [S*I]SImMon_WCG______* 阅读(629) 评论(0) 推荐(0) 编辑

2012年1月25日

HDU 2955 Robberies

摘要: RobberiesTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3083Accepted Submission(s): 1160Problem DescriptionThe aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because the 阅读全文

posted @ 2012-01-25 22:33 [S*I]SImMon_WCG______* 阅读(283) 评论(0) 推荐(0) 编辑

高斯消元法(Gauss Elimination) 分析 & 题解 & 模板——czyuan原创

摘要: 高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面来说说高斯消元法在编程中的应用。首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数与变元数不同)1. 把方程组转换成增广矩阵。2. 利用初等行变换来把增广矩阵转换成行阶梯阵。枚举k从0到equ 阅读全文

posted @ 2012-01-25 21:41 [S*I]SImMon_WCG______* 阅读(595) 评论(0) 推荐(0) 编辑

2012年1月16日

qsort 的用法

摘要: 快速排序qsort真的很强大一、对int类型数组排序int num[100];int cmp ( const void *a , const void *b ){return *(int *)a - *(int *)b;}qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型)char word[100];int cmp( const void *a , const void *b ){return *(char *)a - *(int *)b;}qsort(word,100,sizeof(word[0]),cmp);三、对double类型 阅读全文

posted @ 2012-01-16 12:10 [S*I]SImMon_WCG______* 阅读(249) 评论(0) 推荐(0) 编辑

HDU 1004 Let the Balloon Rise

摘要: Let the Balloon RiseTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 30662Accepted Submission(s): 10048Problem DescriptionContest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time 阅读全文

posted @ 2012-01-16 11:52 [S*I]SImMon_WCG______* 阅读(222) 评论(0) 推荐(0) 编辑

strstok详解

摘要: extern char *strtok(char *s, char *delim);用法:#include <string.h> 功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。 返回指向下一个标记串。当没有标记串时则返回空字符NULL。 1 #include<stdio.h> 2 #include<string.h> 3 #include&l 阅读全文

posted @ 2012-01-16 11:02 [S*I]SImMon_WCG______* 阅读(580) 评论(0) 推荐(0) 编辑

HDU 2072 单词数

摘要: 单词数Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12939Accepted Submission(s): 3310Problem Descriptionlily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。Input有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。Outp 阅读全文

posted @ 2012-01-16 10:55 [S*I]SImMon_WCG______* 阅读(1061) 评论(0) 推荐(0) 编辑

2012年1月14日

HDU 1052 Tian Ji -- The Horse Racing

摘要: Tian Ji -- The Horse RacingTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8562Accepted Submission(s): 2380Problem DescriptionHere is a famous story in Chinese history."That was about 2300 years ago. General Tian Ji was a high official in the 阅读全文

posted @ 2012-01-14 02:26 [S*I]SImMon_WCG______* 阅读(337) 评论(0) 推荐(0) 编辑

HDU 2037 今年暑假不AC

摘要: 今年暑假不ACTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11630Accepted Submission(s): 5990Problem Description“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比 阅读全文

posted @ 2012-01-14 02:02 [S*I]SImMon_WCG______* 阅读(290) 评论(0) 推荐(0) 编辑

HDU 2034 人见人爱A-B

摘要: 人见人爱A-BTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21648Accepted Submission(s): 6035Problem Description参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)呵呵,很简单吧?Input 阅读全文

posted @ 2012-01-14 01:16 [S*I]SImMon_WCG______* 阅读(389) 评论(0) 推荐(0) 编辑

HDU 1106 排序

摘要: 排序Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 17926Accepted Submission(s): 4669Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。Input输入包含多组 阅读全文

posted @ 2012-01-14 00:29 [S*I]SImMon_WCG______* 阅读(320) 评论(0) 推荐(0) 编辑

2012年1月13日

HDU 2040 亲和串

摘要: 亲和数Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10308Accepted Submission(s): 6415Problem Description古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284。 而284的所有真约数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个 阅读全文

posted @ 2012-01-13 18:47 [S*I]SImMon_WCG______* 阅读(512) 评论(0) 推荐(0) 编辑

HDU 2031 进制转换

摘要: 进制转换Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11350Accepted Submission(s): 6384Problem Description输入一个十进制数N,将它转换成R进制数输出。Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制( 阅读全文

posted @ 2012-01-13 18:35 [S*I]SImMon_WCG______* 阅读(666) 评论(0) 推荐(0) 编辑

2012年1月12日

HDU 1257 最少拦截系统

摘要: 最少拦截系统Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6572Accepted Submission(s): 2571Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.怎么办呢?多搞几套 阅读全文

posted @ 2012-01-12 13:32 [S*I]SImMon_WCG______* 阅读(528) 评论(0) 推荐(0) 编辑

2012年1月11日

HDU 1003 Max Sum

摘要: Max SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 65556Accepted Submission(s): 14974Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max 阅读全文

posted @ 2012-01-11 22:32 [S*I]SImMon_WCG______* 阅读(214) 评论(0) 推荐(0) 编辑

用匈牙利算法求二分图的最大匹配

摘要: 什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。最大流算法的核心问题就是找增广路径(augment path)。匈牙利算法也不例外,它的基本模式就是:初始时最大匹配为空while 找得到增广路径 do 把增广路径加入到最大匹配中去可见和最大流算法是一样的。但是这里的增广路径就有它一 阅读全文

posted @ 2012-01-11 18:57 [S*I]SImMon_WCG______* 阅读(240) 评论(0) 推荐(0) 编辑

二分匹配,最大流,匈牙利图形解释及证明

摘要: 转载请注明作者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/709717672008111064351431/很明显,对于算法的证明过程的理解有助于算法本身的理解。关于二分图,算法的流程在这篇blog里讲的很清楚,很多算法都结合了图形,所以讲讲得很易懂,推荐一下http://imlazy.ycool.com/post.1603708.html在这里还是主要关注一下关于这些问题的一些定理的证明的理解。(更详细的内容可以参考<<图论及其算法>>王树禾著)一.匈牙利算法的证明:关于二分匹配,涉及到了一些定理(B 阅读全文

posted @ 2012-01-11 18:52 [S*I]SImMon_WCG______* 阅读(1127) 评论(0) 推荐(0) 编辑

导航