上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页

2012年7月28日

hdu 4313 Matrix

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4313思路:有点贪心吧。先设a为b、c的father,分以下三种情况考虑:1、如果a有机器人,b或c也有机器人,则一定要把a和b,c断开。2、如果a、c没有机器人,且b有机器人,设d有机器人,且d为a的father,则问题可以转化成a有机器人,取b到d路径上的最小值。3、如果a没有机器人,且b、c有机器人,则如果a到b的路径大于a到c的路径,则把b的机器人放到a点上,a到c的路径权值加到ans,反之~~~~。这样每次都让叶子结点开始向上归约。每个结点都会进一次队,最后的时间复杂度为O(n).View Code 阅读全文

posted @ 2012-07-28 11:45 aigoruan 阅读(220) 评论(0) 推荐(0)

2012年7月25日

hdu 2728 && hdu 3829

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3829http://acm.hdu.edu.cn/showproblem.php?pid=2768思路:以cat_lover和dog_lover把观众分为两个集合。只要两个集合内的人的选择有冲突,这两个顶点连接,边代表矛盾,然后求最大独立集。 最大独立集 = 顶点数 - 最小顶点覆盖数(最大匹配数)View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath 阅读全文

posted @ 2012-07-25 12:02 aigoruan 阅读(200) 评论(0) 推荐(0)

hdu 1054 Strategic Game

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1054题意:给一棵树,选择最小的点数,覆盖整个图。思路:最小点覆盖=最大二分匹配。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#include<string>#include<climits>#include<cstdio>#include<vect 阅读全文

posted @ 2012-07-25 10:36 aigoruan 阅读(148) 评论(0) 推荐(0)

2012年7月23日

hdu 1151 Air Raid

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1151最小路径覆盖=N-最大匹配View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#include<string>#include<climits>#include<cstdio>#include<vector>#include<utility 阅读全文

posted @ 2012-07-23 17:05 aigoruan 阅读(144) 评论(0) 推荐(0)

hdu 1281 棋盘游戏

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1281题意:一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,在保证尽量多的“车”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车,也可以保证尽量多的“车”被放下。但是某些格子若不放子,就无法保证放尽量多的“车”,这样的格子被称做重要点。算出有多少个这样的重要点。思路:题目没有说出要严格每个车合占一行和一列。先求出最大可放的车数目ans。然后枚举每个位置不放车的情况下,可放车的最大数目tans,如果tans<ans,则计数cnt++。 实在很难想像 阅读全文

posted @ 2012-07-23 16:22 aigoruan 阅读(208) 评论(0) 推荐(0)

2012年7月18日

poj 1227 RoboContest

摘要: http://poj.org/problem?id=1227题意:给一个无向图,然后在图中的一些点放置一些机器人,机器人在每一秒中都要向相邻的方向走去。问是否存在在某个时刻,每个机器人都在一个点上。思路:利用奇偶性解决,如果图中存在一下奇数环,则一定满足;不然看某个到到达所以机器人的步数的奇偶性是否一样就可以了。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#include&l 阅读全文

posted @ 2012-07-18 16:55 aigoruan 阅读(222) 评论(0) 推荐(0)

hdu 3861 The King’s Problem

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3861题意:给出一个有向图,问最少能够分成多少个区域,使得每个区域内的任意一对顶点X、Y间,要么X能达到Y,要么Y能到达X。思路:如果图有环,那么环内的点都是满足的,所以先缩点。然后就是有向图的最小路径覆盖,这就是祼二分图解决。PS:最小路径覆盖 = 点数-最大匹配。 缩点后点数不是原来的N。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath> 阅读全文

posted @ 2012-07-18 10:42 aigoruan 阅读(160) 评论(0) 推荐(0)

hdu 4185

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4185题意:给一个二维的地图,地图只有'.'和'#',问最多有多少对‘#’,一对‘#’要相邻。思路:很明显,是一个二分匹配的题目,当时考虑到600*600个点,不敢写,随后弄了个贪心的算法:把地图转化成一个无向图,并记录第个点的度。优先匹配度为1的点,再次是度为2的点,度为3和4的点是不会先匹配的,然后就相当于维护两个队列,并标记每个点是否已被访问和度的变化。这个想法好像没什么 问题,但一直wa。随后想不出有什么好的二分匹配算法,看解题才知道,居然是裸二分图,orz~~~PS: 阅读全文

posted @ 2012-07-18 10:34 aigoruan 阅读(202) 评论(0) 推荐(0)

2012年7月11日

对字符串排序

摘要: #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#include<string>#include<climits>#include<cstdio>#include<vector>#include<utility>#include<cstdlib>#include<cstring>#include<iostrea 阅读全文

posted @ 2012-07-11 21:11 aigoruan 阅读(203) 评论(0) 推荐(0)

2012年7月10日

tarjan

摘要: /*http://acm.hdu.edu.cn/showproblem.php?pid=4183题意:在二维平面上给N个圆,每个圆的都有一种颜色光,每种颜色光的频率是不一样的。但保证一定有两种颜色:一种频率为400(最小),一种频率为789(最大)。现在频率为400的为起点,频率为789的为终点。起点和终点是否能构成一个回路,且起点到终点的路径中光频率要单调递增,终点回到起点的路径中列频率单调递减。思路:可以将圆看成一个点,圆之间相交看成点与点之间的边。这样就可以转化成在一个无向图里求给定点的环问题,因此可以直接套用tarjan求环。但要注意处理无向图中的割点问题。至于路径的单调性,可以这样做 阅读全文

posted @ 2012-07-10 22:45 aigoruan 阅读(240) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 10 ··· 12 下一页

导航