自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ACMer_quack&cheer

when the hobby becomes your burden, you start to hate and desert it.

  • 博客(17)
  • 收藏
  • 关注

原创 POJ2762 Going from u to v or from v to u?(强联通分量)

题目大意:有n个点的有向图,对于其中任意两点u,v是否都能使u能走到v或者v能走到u(注意是或者!!!),如果是输出Yes,否则输出No。思路:裸的强联通。学了几天没写强联通的题,手又生了。对于图中的每个环,它们之间都能够相互到达,所以把它们缩成一个点(联通块)。然后判断缩点后的图是否为一条单向的链,如果是,那么条件肯定成立。否则不成立。#include#include#def

2015-07-28 17:28:21 314

原创 HDU2819 Swap (二分图匹配)

题目大意:给你一个n*n(n思路:看到这道题首先想到的应该是搜索,然而看了一下数据范围n然后仔细分析一下目标状态,是对角线全部为1,那么把它打乱了之后就是每一行每一列都有一个1,而且这个1不冲突(类似于8皇后问题)。例如n=3时的一种目标状态为:1 0 0    它可以由这几个状态转化而来:0 1 0 0 1 00 0 1 1 0 0

2015-07-28 15:12:38 457

原创 ZOJ1654 Place the Robots (二分图匹配)

问题描述:有一个N*M(N,M思路:跟ZOJ1002 Fire net 很相似的一道题。刚开始做这道题的时候我还以为是状压DP,后来想了下如果是状压DP的话需要考虑前面的情况太多。然后想了一下迭代加深搜索,应该也可以做。其实这道题的真正原型是求图的最大独立集问题,也就是二分图匹配问题。因此,在问题的原型中,草地,墙这些信息不是我们所关心的,我们关心的只是空地

2015-07-27 21:59:59 634

原创 Ural1109 Conference(二分图匹配)

题目大意:每个顶点要求至少连一条边,求覆盖完全部顶点的最少边数思路:二分图匹配的模板题,每个顶点被一条边覆盖,则要用N+M条边。但每条匹配的边却覆盖着2个顶点,就少用1条边。因此,最多可以少用的边数恰等于最大匹配数。故有:                                                     最少边数 = N + M - 最大匹配数#inclu

2015-07-27 17:49:27 385

原创 HDU1560 DNA sequence (IDA*)

题目大意:给你n(n思路:搜索。很容易看出来最少步数大于等于最长的字符长度,因此估值函数h() =  同一字符串中所有剩余没匹配字母长度的最大值#include#include#define Max(a,b) a>b?a:busing namespace std;int n;struct T{ char s[10]; int len;}a[10];int

2015-07-27 17:09:15 392

原创 HDU2234 无题I (IDA*)

题目描述:一天机器人小A在玩一个简单的智力游戏,这个游戏是这样的,在一个4*4的矩阵中分别有4个1,4个2,4个3和4个4分别表示4种不同的东西,每一步小A可以把同一行的4个数往左移或者往右移一步或者把同一列的4个数字往上移或者往下移一步(1,2,3,4往左移后是2,3,4,1),小A现在想知道进过最少的几步移动可以将矩阵的每行上的4个数字都一样或者每列上的4个数字都一样。但是小A又不想走太多步,

2015-07-27 16:19:49 434

原创 USACO 4.2.2The Perfect Stall 完美的牛栏(二分图最大匹配)

题目描述:农夫约翰上个星期刚刚建好了他的新牛棚,他使用了最新的挤奶技术。不幸的是,由于工程问题,每个牛栏都不一样。第一个星期,农夫约翰随便地让奶牛们进入牛栏,但是问题很快地显露出来:每头奶牛都只愿意在她们喜欢的那些牛栏中产奶。上个星期,农夫约翰刚刚收集到了奶牛们的爱好的信息(每头奶牛喜欢在哪些牛栏产奶)。一个牛栏只能容纳一头奶牛,当然,一头奶牛只能在一个牛栏中产奶。 给出奶牛们的爱好的信息

2015-07-27 11:54:14 1806

原创 POJ1945 Power Hungry Cows (BFS)

题目大意:自己感觉非常奇葩的一道搜索题。给出n,求x^n。最先给出的两个数为x^1和x^0,可以执行如下操作:两个数相乘,其中一个数平方,两个数相除。问要达到x^n的最少步数。思路:把此题说得简单一点就是给定两个加数a = 1, b = 0;(在这里我们规定a总是大于b)每一部可以执行a*2,b*2,a-b之一的操作,使得目标状态达到n,每次操作之后新得到的值要替换掉原来的一个数。例如

2015-07-26 17:57:10 966

原创 POJ1077 HDU1043 Eight 八数码 (A*+康托展开)

题目大意:给出八数码的起点状态,求出能够到达到终点状态的步数的序列(不一定是要最短的步数)终点状态为:1 2 34 5 67 8 x思路:这道题有很多方法可以做,在这里我用的是A*算法。在保存每一步的具体路径的时候我们可以用康托展开。首先把每一位赋予一个权值,个位的权值是0!,十位是1!,百位是2!,千位是3!........然后统计当前数位在他后面比他小的数字有多少个,然

2015-07-26 16:54:38 474

原创 POJ3897 Maze Stretching (二分+BFS)

题目大意:给你一个地图,和路径长度L,起点和终点,上下走和左右走的距离为1,现在让你纵向压缩地图,改变上下走的距离,使得从起点到终点的最短距离恰好等于L。问应该怎样纵向压缩地图,保留3位小数。思路:Hint中已给出答案在0~10之间,因此我们可以用二分的方法枚举纵向压缩的比例,然后BFS验证是否能够使得走到终点的距离恰好为L。走的过程中注意剪枝,具体请看我的代码。还有,答案的精度貌似要

2015-07-26 16:32:43 481

原创 POJ2186 USACO 2003 Fall Popular Cows(强联通分支)

题目大意:有n只牛,给出一个受欢迎的关系,受欢迎的关系是单向的但是可以传递,当然,每只牛都是欢迎自己的。问有多少只牛收到所有牛的欢迎。思路:首先我们要明确这是一张有向图。然后求出所有的强联通分量,把它们压缩成一个点,之后我们就会得到一棵树。最后统计树上入度为0的点,如果有不止一个入度为0的点,那么肯定是不符合题意的,因为这些入度为0的点不会互相欢迎。注意在这里树上入度为0的点可能并不是

2015-07-21 21:18:30 689

原创 POJ2942 Knights of the Round Table(双联通分量+奇圈判断)

题目大意:有n个骑士要开会,有m对仇恨关系,可以坐很多张圆桌,每张圆桌至少三个人。求有多少个骑士不能参加会议,满足以下条件:1、相互憎恨的骑士不能相邻 2、出席会议的骑士必须是奇数思路:既然给出来的仇恨关系,那么我们可以存储反图,如果两个骑士之间有一条连线,那么表示着两个骑士可以坐在一起,那么我们现在要求的就是双联通分量。这里简单介绍一下双联通分量:简单来说,无向图G如

2015-07-21 20:49:39 470

原创 [USACO 2012OPEN] Balanced Cow Subsets(meet in the middle + DFS)

题目大意:给出n(n思路:设ai∈{-1,0,1},所求的集合可以视作Σai*xi=0,说得简单一点就是(以n = 6为例)a1*x1 + a2*x2 + a3*x3 + a4*x4 + a5*x5 + a6*x6 = 0显然枚举6个x肯定超时。于是我们采用meet in the middle的思路,拿出一半分成一组。a1*x1 + a2*x2 + a3*x3记为leftsum

2015-07-21 19:56:06 598

转载 NOI 2015 荷马史诗 k叉哈夫曼树 优先队列

转自:http://blog.csdn.net/Quack_quack/article/details/46958413题目大意:给出n个数字w[],代表n个字母出现的次数,给出k。要求用k进制的数字串si替换第i个字母,且替换之后要求替换后的文章无二义性(这里的无二义性是指对于任意的 1≤i,j≤n ,i≠j,都有: si不是sj的前缀),求替换后最短的文章的长度(长度len=s

2015-07-20 21:23:40 4472

原创 POJ1523 SPF (无向图求割点)

题目大意:给出一个无向图,求每个割点,并且输出每个割点能把图分成多少个部分思路:裸的求割点的题目。割点是指在连通图中的一个点,删除这个点后,连通图的各个部分不再连通。注:此题输入巨坑,注意格式#include#include#define MAXN 1010#define Min(a,b) a<b?a:busing namespace std;struct E{

2015-07-20 14:07:01 642

原创 UVA1354 Mobile Computing(DFS)

题目大意:给出房间宽度,重物个数n(n思路:显然的搜索题。由于重物的个数最多只有6个,因此我们可以状态压缩,用一个01串表示。然后暴力枚举左右天平的情况,用记忆化搜索。#include#include#include#define MAXN 1<<6#define Max(a,b) a>b?a:b#define Min(a,b) a<b?a:busing namespa

2015-07-20 08:36:50 467

原创 UVA529 Addition Chains (迭代+DFS)

题目大意:给定整数n,找出一个以n结尾的序列,序列的每个数都由前面两个数(可以相同)相加得到,输出合法的最短序列 思路:显然的搜索题。想要得到最短的序列,那么n最好由n/2相加得到,所以我们先求出最小深度,以最小深度为基础进行深搜。如果找不到合适的序列,那么深度+1继续深搜。还要注意剪枝,当前数为ans[now],如果它一直乘2(一直向下取最大值)还达不到n,则枚举下一个。#include<cst

2015-07-19 20:13:46 502

空空如也

空空如也

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

TA关注的人

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