
dfs
文章平均质量分 61
SaltyFishWei
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #313 (Div. 2) Equivalent Strings(搜索)
题目大意:判断两个字符串是否等价。等价的条件(任意一条满足即可):1、两个字符串完全相同2、把每个字符串分成长度相同的两部分,若a1等价于b1并且a2等价于b2,或者a1等价于b2并且a2等价于b1由于等价的条件说得很模糊,我卡了不久。等价条件里的第2条的意思是,如果ab两个字符串的两两子串都满足这两个条件,那么ab是等价的(有点绕,对吧),如果我们都已经解读清楚这句话了,显然原创 2015-08-07 17:48:34 · 509 阅读 · 0 评论 -
UVA529 Addition Chains (迭代+DFS)
题目大意:给定整数n,找出一个以n结尾的序列,序列的每个数都由前面两个数(可以相同)相加得到,输出合法的最短序列 思路:显然的搜索题。想要得到最短的序列,那么n最好由n/2相加得到,所以我们先求出最小深度,以最小深度为基础进行深搜。如果找不到合适的序列,那么深度+1继续深搜。还要注意剪枝,当前数为ans[now],如果它一直乘2(一直向下取最大值)还达不到n,则枚举下一个。#include<cst原创 2015-07-19 20:13:46 · 536 阅读 · 0 评论 -
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 · 499 阅读 · 0 评论 -
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 · 668 阅读 · 0 评论 -
[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 · 626 阅读 · 0 评论 -
POJ2186 USACO 2003 Fall Popular Cows(强联通分支)
题目大意:有n只牛,给出一个受欢迎的关系,受欢迎的关系是单向的但是可以传递,当然,每只牛都是欢迎自己的。问有多少只牛收到所有牛的欢迎。思路:首先我们要明确这是一张有向图。然后求出所有的强联通分量,把它们压缩成一个点,之后我们就会得到一棵树。最后统计树上入度为0的点,如果有不止一个入度为0的点,那么肯定是不符合题意的,因为这些入度为0的点不会互相欢迎。注意在这里树上入度为0的点可能并不是原创 2015-07-21 21:18:30 · 721 阅读 · 0 评论 -
POJ2942 Knights of the Round Table(双联通分量+奇圈判断)
题目大意:有n个骑士要开会,有m对仇恨关系,可以坐很多张圆桌,每张圆桌至少三个人。求有多少个骑士不能参加会议,满足以下条件:1、相互憎恨的骑士不能相邻 2、出席会议的骑士必须是奇数思路:既然给出来的仇恨关系,那么我们可以存储反图,如果两个骑士之间有一条连线,那么表示着两个骑士可以坐在一起,那么我们现在要求的就是双联通分量。这里简单介绍一下双联通分量:简单来说,无向图G如原创 2015-07-21 20:49:39 · 503 阅读 · 0 评论