自定义博客皮肤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'm growing!~~

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

转载 二分图最大匹配的König定理-最小点集覆盖【Matrix67】

König定理是一个二分图中很重要的定理,它的意思是,一个二分图中的最大匹配数等于这个图中的最小点覆盖数。如果你还不知道什么是最小点覆盖,我也在这里说一下:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。比如,下面这个图中的最大匹配和最小点覆盖已分别用蓝色和红色标注。它们都等于3。

2011-12-03 10:04:21 5057

原创 POJ-1007 DNA Sorting

题目链接:http://poj.org/problem?id=1007题目大意:给你多组DNA的序列,求出每个序列的逆序数,然后按逆序数从小到大输出。如果相等,则按照原输入输出。解题思路:这道题其实暴力能过,但是sort之后一直wrong,原来是用stable_sort才能过,稳定排序就是如果按照某一规则排序后,两个元素值相等,就不会改变顺序了,而sort是不确定的。所以要用稳定排

2011-12-02 20:43:44 1442

原创 POJ-2446 Chessboard

题目链接:http://poj.org/problem?id=2446题目大意:给你一个m*n的棋盘,其中有k个小洞,现在给你1*2的纸片,如果能恰好覆盖没有洞的全部格子,而且每个格子不能被覆盖2次,一张纸也必须是1*2规模的,这样就输出YES。解题思路:这道题是搜二分图搜到的。但是竟然一点也看不出来哪里能用二分图最大匹配来做。只好去搜题解了。。。思路是:把这个棋盘看成一个

2011-12-01 15:56:22 3744 1

原创 POJ-2536 Gopher II

题目链接:http://poj.org/problem?id=2536题目大意:有n只地鼠的坐标,m个洞的坐标,地鼠的移动速度为v,在s秒以后会飞来一只老鹰要吃地鼠,问有多少个地鼠可能被吃。解题思路:二分图最大匹配。匹配多了一个条件判断距离而已。。。代码如下:#include#include#include#include#includeusing names

2011-12-01 11:30:53 2902

原创 POJ-2239 Selecting Courses

题目链接:http://poj.org/problem?id=2239题目大意:现在有N门课程,从1到N。然后一个学生爱学习,想学习尽可能多门的课程,每门课程在一星期内可以开设多次,但不同课程之间可能有冲突,上课时间为:每周7天,一天12节课,现在给你每门课程的上课时间,求这个学生一周之内最多上几门课程。解题思路:可以转换为二分图最大匹配。一个集合为课程,一个集合为上课时间

2011-12-01 10:48:15 2687

原创 POJ-1469 COURSES

题目链接:http://poj.org/problem?id=1469题目大意:给你p门课程和n个学生,一个学生可以选0门,1门,或者多门课程,现在要求一个由p个学生组成的集合,满足下列2个条件:1.每个学生选择一个不同的课程2.每个课程都有不同的代表如果满足,就输出YES解题思路:二分图最大匹配。邻接矩阵map[i][j]表示j号学生喜欢i号课程,然后对课

2011-11-30 08:50:40 5313

原创 POJ-1274 The Perfect Stall

题目链接:http://poj.org/problem?id=1274题目大意:有n头牛和m个牛棚,现在牛要产奶,但是每个牛只在自己喜欢的牛棚才产奶,求最多的产奶量。解题思路:二分图的最大匹配。邻接矩阵实现,map[i][j] = 1,代表奶牛i喜欢在j牛棚产奶,然后遍历牛棚,如果有牛喜欢在这里产奶,就把那头牛标记一下。之后遍历奶牛,如果标记则代表有匹配的牛棚,可以产奶,然

2011-11-29 17:57:38 1864

原创 二分图最大匹配—匈牙利算法

二分图:又叫二部图,图G中顶点集V可以分成互不相交的子集(X,Y),并且图中的每一条边所关联的点分别属于两个不同的顶点集,则图G叫二分图。(不含奇环)二分图的匹配:给定一个二分图G的子图M,M的边集中任意两条边都不依附于同一个顶点(点单独配对),则称M是一个匹配。二分图的最大匹配:边数最大的一个匹配就是二分图的最大匹配。看上去二分图匹配好像没有什么用途,但以下三个定理会有大

2011-11-29 13:33:50 2447

原创 HDU-2063 过山车

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2063、解题思路:二分图最大匹配。匈牙利算法即可解决,但是注意的是男生和女生数目不相等,所以需要用少的去挑多的。代码如下:#include#include#includeusing namespace std;#define N 1010#define M 510#def

2011-11-29 09:47:47 1394

原创 NYOJ-239 月老的难题

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=239解题思路:二分图的最大匹配。模板题,开始学习二分图了。。。匈牙利算法。代码如下:#include#includeusing namespace std;#define N 10010#define M 510int head[M], next[N]

2011-11-28 21:09:56 2104

原创 ACM进阶指南

ACM队不是为了一场比赛而存在的,为的是队员的整体提高。大学期间,ACM队队员必须要学好的课程有:l C/C++两种语言l 高等数学l 线性代数l 数据结构l 离散数学l 数据库原理l 操作系统原理l 计算机组成原理l 人工智能l 编译原理l 算法设计与分析除此之外,我希望你们能掌握一些其它的知识,因为知识都是相互联系,触类旁通的。以下学习计

2011-11-28 19:51:55 9806 12

原创 NYOJ-330 一个简单的数学题

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=330解题思路:这道题可以用暴力解决,其实有数学方法。地址如下:http://wenku.baidu.com/view/56df57c708a1284ac850430d.htmlhttp://wenku.baidu.com/view/53a96582d4d8d15abe2

2011-11-28 19:23:41 2407 6

原创 NYOJ-448 寻找最大数

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=448解题思路:类似贪心的算法。对这个字符串进行查找,每次查找最大值,查找len-m次即可。但查找的时候需要考虑查找范围,比如9222225,第一次查询的时候只能查询9到最后一个2这个范围,因为要保持原序列,所以在查找第i个字符的时候,后面必须还剩下m-i个字符不能查找,这样

2011-11-28 16:31:50 3441

原创 NYOJ-422 字串和之差

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=422解题思路:这道题读完题应该就知道是一道动态规划题了,和做过的题类似的有一道求连续个数的最大值(有正,有负)。而这道题多了一个条件,是求绝对值,而且是最大值和最小值的绝对值。我的方法是开2个dp数组。dp[i]表示到第i个元素为止的最大值或者最小值,然后用max和min记录最

2011-11-28 16:24:27 1581 3

原创 月赛小结

昨天月赛,被虐了~~~我了个去。。。真悲剧。。。。就做出来一道题,虽然很水,但貌似也没几个人做出来,这次比赛暴露了很多问题。。。简单总结一下吧。首先就是读题,有道题一直wrong就是因为读错了,人家说都是原序列,我压根没注意,结果到最后才看到。。。也没时间搞了。然后就是做题方向,前段时间我一直在刷专题,其他类题目少有涉及,但这次月赛很多动态规划,虽然也不是太难,但是很久很久没碰了。各种

2011-11-28 11:47:44 1671

原创 HDU-1443 Joseph

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1443题目大意:一共有2k个人,分别为k个好人和k个坏人,现在我们需要每隔m个人把坏人挑出来,但是条件是最后一个坏人挑出来前不能有好人被挑出来。。问最小的m是多少解题思路:典型的约瑟夫问题。这道题也不算多难,只要肯好好想,思路是一定会有的。但是实现起来确实有一定的难度,弄了2个小时,当k

2011-11-26 11:55:53 4605

原创 HDU-1568 Fibonacci

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1568解题思路:一遇到数学题就悲剧!!我了个去啊!!!啥时候才能用公式瞬秒数学题啊。。。每次都被虐。。。看了AC大神的题解才做出来,数据给到1亿,明显数组也没法存,用java也搞不定!原来就是卡递推的。。。用到了斐波那契数列的通项公式。先看对数的性质,loga(b^c)=c*lo

2011-11-25 21:42:54 4091

原创 HDU-1271 整数对

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1271解题思路:这道题看之后没一点思路,感觉自己跟外星来的差不多。所以就搜下解题报告,发现网上的代码也几乎一样。。估计思路太BT,没几个人做出来吧。。。。下面就稍微分析一下吧。。。。。首先假设X的第k位拿走,然后加上加上X的和正好等于N!这样的话 我们可以把X 分解成:X= a+

2011-11-25 20:21:21 4166 3

原创 算数基本定理运用

#include#include#include#includeusing namespace std;#define N 500010int num; //素数的个数int p[500010];void fun() //素数打表{ num = 0; memset(p, 0, sizeof(p)); int res = sqrt(N * 1.0); for(int i

2011-11-25 14:31:32 1480

原创 HDU-2504 又见GCD

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2504解题思路:由于a和c的最大公约数是b,所以a = xb,b=yb。现在相当于已知x,求y。我们由上面可知x和y一定是互质的。只要枚举一下最小的与x互质的自然数就是y了,但是题目要求不等于b,所以要加上不相等的条件。。代码如下:#include#include#include

2011-11-25 13:21:06 2489

原创 HDU-1722 Cake

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722解题思路:这个想了半天也没想出什么好的办法。。。。。。google之~~举个例子:4 6,用一个矩形来切割,其实应该是圆的。这里边界也得加上,因为首位其实是相连的。。。自己动手画下圆形的蛋糕模拟。蓝色点线表示4等分线 红色实线表示6等分线,让蛋糕(矩形)可以平分为4份需

2011-11-25 11:10:04 3268 4

原创 HDU-2138 How many prime numbers

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2138解题思路:复习一下素数,这道题数据太BT。没法打表,只能暴力了。。。。~sqrt尽量写在外面。要不然累计时间代码如下:#include#include#include#include#includeusing namespace std;bool isprim(i

2011-11-25 10:25:42 1795

原创 HDU-1050 Moving Tables

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050题目大意:和活动安排相似的一道题,贪心就可以了。但是自己wrong了半个小时,也不知道哪里错了。。。悲剧。之后用另外的思路写出来了,就是求走廊的最大重叠数,因为房间是对称分布的,需要注意一下奇偶的情况。代码如下:#include#include#include#inc

2011-11-25 07:37:00 2212

原创 HDU-1106 排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1106解题思路:虽然是一道水题,但是你试试能不能一次A掉,我是WRONG了好几次,去看了discuss,纠结了好几种特殊数据才过的。。。。不说别的,直接给测试数据:555556 //开头有5的1555556 //中间有一堆5的125 //5结尾的55552345891 //不

2011-11-24 11:13:17 5463 4

原创 HDU-1236 排名

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1236解题思路:水题,主要是学习了结构体中字符串按字典序排序的方法。。。。代码如下:#include#include#include#includeusing namespace std;#define N 1010int que[15];struct node{

2011-11-24 07:44:36 2259 2

原创 HDU-1009 FatMouse' Trade

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1009题目大意:一只老鼠有m个猫粮,仓库有猫把守,给它想要的猫粮就成比例的给你javabean。问最多能得到多少猫粮。解题思路:这道题水的不能行,但是我却弄了快1个小时。debug半天找不到错误去discuss,发现数据竟然有0.。。。也就是说猫不要猫食,直接可以把javabean全给你

2011-11-23 19:31:53 1811

原创 AC自动机算法

AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算法。

2011-11-23 09:04:50 97768 4

原创 HDU-2222 Keywords Search

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222题目大意:给你很多个单词,然后给你一篇文章,问给出的单词在文章中出现的次数。解题思路:AC自动机入门题。需要注意的就是可能有重复单词,坑死人不偿命!~~~~代码如下:#include#include#include#includeusing namespace st

2011-11-23 08:18:50 8917 1

原创 HDU-3635 Dragon Balls

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3635题目大意:初始时,有n个龙珠,编号从1到n,分别对应的放在编号从1到n的城市中。现在又2种操作:T A B,表示把A球所在城市全部的龙珠全部转移到B城市。(第一次时,因为A球所在的城市只有一个球,所以只移动1个,如果有多个,则全部移动)。Q A,表示查询A。要求得到的信

2011-11-19 10:20:59 4572 1

原创 POJ-2236 Wireless Network

题目链接:http://poj.org/problem?id=2236题目大意:给你N台电脑,从1-N。一个数字,表示两台计算机的最大通信距离,超过这个距离就无法进行通信。然后分别告诉这些电脑的坐标,接下来有两种操作,第一种O表示这点电脑修好,第二种S,表示测试这两台电脑能不能进行正常的通信解题思路:并查集的简单应用,对每次修好的电脑对其它已经修好的电脑遍历,如果距离小于等

2011-11-18 15:16:50 6860 1

原创 POJ-1988 Cube Stacking

题目链接:http://poj.org/problem?id=1988题目大意:给你编号从1到30000的大小相同的立方体,现在我有2种操作:1.move 1,3表示把1放在3的上面。还有一种情况是:假如1的下面还有一个2,3的下面还有一个4,那么move1,3的意思就是把1所在的全部立方体放在3全部立方体的上面,而且保持原来1和3所在堆的立方体的顺序。移动后从上到下依次为1,2,

2011-11-18 12:12:28 2512

原创 POJ-1703 Find them, Catch them

题目链接:http://poj.org/problem?id=1703题目大意:在Tadu城市里面有2个犯罪团伙,罪犯都属于这两个团伙。现在给你2个罪犯,判断他们是不是一个犯罪团伙。如果当前关系不确定,就输出not sure yet.解题思路:并查集的应用,很A bug's life基本一样。。。。秒之。但纠结了半个小时的地方竟然是输出看错了,同一个团伙是gang,不是gang

2011-11-18 09:09:39 1775

原创 奋斗之路

1.别怕丢人,追求丢人是一种成功的尝试,至于为此笑话你的人,你可以把他们从你将来人生对手的名单中排除了,你也要为每一位上台唱歌的人鼓掌。 2.不要抱怨学校的差异和现实的不公平,你的不公平对于别人而言却是公平,要靠你自己去改变不如意的环境,争取合理的公平。 3.不论男人还是女人,如果在大学里还把容貌当作重要的东西而过分重视的话,可能不会吃亏,但是早晚会吃亏.可能,很可能.

2011-11-17 16:49:18 1531

原创 POJ-2492 A Bug's Life

题目链接:http://poj.org/problem?id=2492题目大意:给你n个bug和m个他们之间的信息。如给出1和3,表示1喜欢3。当然给出的说明他们是异性。判断有没有出现一种情况,比如1喜欢2,2喜欢3,1又喜欢3,这明显是矛盾,1和2性别不同,2和3性别不同,那么1和3性别肯定相同,如果1喜欢3,则是同性,矛盾出现。。。题目就是判断有没有矛盾出现。。。。。。。解题思

2011-11-17 16:18:46 1635

原创 POJ-1182 食物链

题目链接:http://poj.org/problem?id=1182解题思路:这道题是并查集题目中的经典。。。而且比普通并查集提高了一个档次,下面在基础并查集的前提上讲解并查集的真正用法。基础回顾:find()函数找根结点的两种写法如下:第一种递归:int find(int x){ return x == pre[x] ? x : find(pre[x]);}

2011-11-17 14:23:20 26596 60

原创 POJ-2524 Ubiquitous Religions

题目链接:http://poj.org/problem?id=2524题目大意:一个学校有N个学生,他们都有1个宗教信仰,现在想知道这N个学生共有多少个不同的宗教信仰。解题思路:很裸的并查集,判断强连通分量的个数,然后用N个宗教信仰减去结点个数(这个宗教全部减去),然后+1(表示他们共同的宗教信仰)。代码如下:#include#include#include#

2011-11-16 15:50:13 1824

原创 POJ-1611 The Suspects

题目链接:http://poj.org/problem?id=1611题目大意:有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了非典,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。解题思路:并查集的变种,实质就是求0所在的强连通图的结点数目。这道题纠结在数据的输入上,他只是告诉你哪些学生是同一

2011-11-16 15:31:37 5287

原创 POJ-1002 487-3279

题目链接:http://poj.org/problem?id=1002题目大意:给你一些由大写字母、数字、和'-'组成的字符串,并给出大写字母各自对应的数字。求出转换为数字后重复的次数。解题思路:简单模拟题,用map处理一下就行了。不过在POJ上数据规模有点大,用字符串老超时,还得换成整数形式才A了。。。第一种是string(TLE了),第二种转换为整数代码如下: #

2011-11-16 10:04:12 10125 2

原创 高效素数打表

大家所知的素数打表时间复杂度几乎都是n2。就是这种:void init_prime(){ int i, j; for(i = 2;i <= sqrt(1000002.0); ++i) { if(!prime[i]) for(j = i * i; j < 1000002; j += i) prime[j] = 1; } j = 0; for(i = 2;i

2011-11-15 15:07:29 14656 4

原创 JAVA大数类练手

今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识。果断水了6道题。。。。。。都是非常基础的。就当的练手的吧。学到的只是一些大数类的基本操作。以后多做点这样的题,争取熟练运用水大数题。。。大数阶乘题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28代码如下:import java.io.*;im

2011-11-15 14:39:44 16735 10

空空如也

空空如也

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

TA关注的人

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