2011年8月11日
摘要: 题意简单,不说了,,明显的匈牙利。。下面给出一种用队列写的匈牙利,以免以后点多了,用数组做不了。。 阅读全文
posted @ 2011-08-11 19:35 →木头← 阅读(311) 评论(0) 推荐(0)
摘要: 题意:本题要求学生中相互了解的人数最多有多少。男生之间都是相互了解的,女生之间也是相互了解的,所以我们可以把相互了解的人之间的边看成是1,所以男生是一个集合,女生是一个集合,map[男][男]=1;map[女][女]=1;当男生和女生熟悉时,map[][]=1;当男生与女生不了解时,map[][]=0;所以求相互了解的人最多有几个就是求构造出的二分图的最大独立集。(本来最大独立集是指互不相关的点最多有几个,而此处我们把相关的定义为map[][]=1;不相关的定义为map[][]=0;所以最大独立集就是所有互相了解的人的集合) 最大独立集=V-最大匹配数;(V为最大顶点数) 阅读全文
posted @ 2011-08-11 19:33 →木头← 阅读(290) 评论(0) 推荐(0)
摘要: HDU 1150 Machine Schedule 匈牙利算法 思路: 把A的n个mode和B的m个mode看作图的顶点,如果某个任务可以在A的mode_i或B的mode_j上完成,则从Ai到Bj连接一条边,这样构造了一个二部图。 求二部图的最小点覆盖集问题。转换成求二部图的最大匹配问题。。 阅读全文
posted @ 2011-08-11 19:29 →木头← 阅读(269) 评论(0) 推荐(0)
摘要: POJ2536:Gopher II 匈牙利算法 题意:有n个地鼠和m个洞,有鹰飞来时,n个地鼠如果能在s秒从当前位置回到一个洞,就能不死,一个洞能容纳一个地鼠,它们的速度为v。求死的个数最小。 思路:匈牙利算法求最大匹配,n-最大匹配就是了,。。把能跑进洞里的老鼠和洞连起来。。 阅读全文
posted @ 2011-08-11 19:22 →木头← 阅读(320) 评论(0) 推荐(0)
摘要: Poj 2446 Chessboard 匈牙利算法 /*题意:给出一个矩形N*M棋盘,有K个格子是空洞,然后用2*1的矩形,对所有 非空洞的格子进行覆盖,如果可以全部覆盖,就puts("YES"); 阅读全文
posted @ 2011-08-11 19:15 →木头← 阅读(992) 评论(0) 推荐(0)
摘要: 最大匹配之匈牙利算法模板。。 二分图的性质: ( 交错轨 和增广路的概念很重要 ) 定理:无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数. 匹配:设G=为二分图,如果M⊆E,并且M中没有任何两边有公共端点。M=Φ时称M为空匹配. 阅读全文
posted @ 2011-08-11 19:01 →木头← 阅读(5756) 评论(1) 推荐(2)
摘要: 传说中最恶心的高精度。。学长说了,这题要是自己出了,,那么你高精度也就学精了。。 我至今不敢去碰。。就是因为太恶心了。下面贴个比较简单的代码。。 阅读全文
posted @ 2011-08-11 15:09 →木头← 阅读(247) 评论(0) 推荐(0)
摘要: HDU 1085 Holding Bin-Laden Captive!母函数基本的应用 //题意:给你面值是1,2,5的硬币的数量,要你求由这些硬币不能组成的最小的金额。。 下面给出3种方法; //方法1:很明显母函数 //我这里一步一步的求。。 //下面是我的一点理解。。如果叫你写由面值1,2,5的硬币所组成的金额的母函数 //Y=(1+x^2+x^3+x^4…+x^n1*1)*(1+x^2+x^4+x^6…x^n2*2)*(1+x^5+x^10+…x^n3*5) 阅读全文
posted @ 2011-08-11 11:27 →木头← 阅读(238) 评论(0) 推荐(0)
摘要: HDU 1698 Just a Hook 线段树 线段树的基本应用。 阅读全文
posted @ 2011-08-11 09:25 →木头← 阅读(258) 评论(0) 推荐(0)
摘要: HDU 1754 I Hate It (线段树模板题) 阅读全文
posted @ 2011-08-11 09:22 →木头← 阅读(498) 评论(1) 推荐(0)
摘要: 【完全版】线段树 阅读全文
posted @ 2011-08-11 09:18 →木头← 阅读(12656) 评论(0) 推荐(5)
摘要: 线段树的定义 定义1 长度为1的线段称为元线段。 定义2 一棵树被成为线段树,当且仅当这棵树满足如下条件: (1) 该树是一棵二叉树。 (2) 树中每一个结点都对应一条线段[a,b]。 (3) 树中结点是叶子结点当且仅当它所代表的线段是元线段。 (4) 树中非叶子结点都有左右两个子树,做子树树根对应线段[a , (a + b ) / 2],右子树树根对应线段[( a + b ) / 2 , b]。 阅读全文
posted @ 2011-08-11 09:15 →木头← 阅读(9068) 评论(1) 推荐(3)
摘要: hdu 2421 Deciphering Password 质因数分解 任何一个大于1的数可以分解成 n=a1^p1*a2^p2*a3^p3*...*an^pn, n的约数总数为(p1+1)*(p2+1)*...*(pn+1), (0,1,...,p1)(0,1,...,p2)...(0,1,...,pn) 不难发现(1+2+...+p1+1)(1+2+...+p2+1)...(1+2+...+pn+1)即为所求 一般而言,任取一自然数N,他的因数有1,n1,n2,n3,……,nk,N, 这些因数的因数个数分别为1,m1,m2,m3,……,mk,k+2,则  1^3+m1^3+m2^3+m3^3+……+mk^3+(k+2)^3  =(1+m1+m2+m3+……+mk+k+2)^2 阅读全文
posted @ 2011-08-11 09:00 →木头← 阅读(716) 评论(0) 推荐(0)