
DFS
西瓜不甜不甜不甜
这个作者很懒,什么都没留下…
展开
-
2016 第七届蓝桥杯 决赛 - 凑平方数 DFS
凑平方数把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。 比如:0, 36, 5948721再比如: 1098524736 1, 25, 6390784 0, 4, 289, 15376 等等…注意,0可以作为独立的数字,但不能作为多位数字的开始。 分组时,必须用完所有的数字,不能重复,不能遗漏。如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?...原创 2018-05-13 10:11:01 · 285 阅读 · 0 评论 -
USACO 2018 February Contest, Bronze 2 Hoofball 深搜+思维
http://www.usaco.org/index.php?page=viewproblem2&cpid=808确定好每个点按照题目规则会通向哪里,然后用in数组记录那些没有入度的点。 第一次循环从那些没有入度的点开始进行搜索。每个点传一个球。 第二次循环发现的点,将会是那些两个点一组的环,它们都有入度,但并不和之前搜索过的点想连。给每个环传一个球。#include <...原创 2018-05-12 20:58:19 · 928 阅读 · 0 评论 -
第八届蓝桥杯决赛 发现环 【dfs+并查集】
小明的实验室有N台电脑,编号1~N。原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。在树形网络上,任意两台电脑之间有唯一的路径相连。 不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。 为了恢复正常传输。小明需要找到所有在环路上的电脑,你能帮助他吗?...原创 2018-04-25 16:39:32 · 608 阅读 · 2 评论 -
第八届蓝桥杯决赛 磁砖样式 【dfs】
小明家的一面装饰墙原来是 3*10 的小方格。 现在手头有一批刚好能盖住2个小方格的长方形瓷砖。 瓷砖只有两种颜色:黄色和橙色。 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来。 小明有个小小的强迫症:忍受不了任何2*2的小格子是同一种颜色。 (瓷砖不能切割,不能重叠,也不能只铺一部分。另外,只考虑组合图案,请忽略瓷砖的拼缝) 显然,对于 2*3 个小格子来说,口算都可以知...原创 2018-04-25 16:02:48 · 530 阅读 · 1 评论 -
codeforces 337A maze DFS
http://codeforces.com/problemset/problem/377/A 给一n*m的图,初始有s个空地,且s个空地是连通的。现要求找到一种方案放k个的墙到这个地图使得剩下的s-k个点还是连通。dfs,搜索s-k个空地,然后剩下的就是放障碍。 注意这里DFS的用法,把放置的操作放到DFs的最后。#include <iostream>#include &...原创 2018-03-19 22:21:55 · 316 阅读 · 0 评论 -
codeforces 217A. Ice Skating DFS or 并查集
http://codeforces.com/problemset/problem/217/A坐标上n个点,从每个点四个方向可以飘到下一个点为止,求需要再多增加几个点,使得我们能从一个点飘到任意其他点。把能够互相到达的点视为一个集合,即求集合的数量-1.刚开始的DFS很失败,应该直接比较两点的x和y,而不是从一个点慢慢+1+1去判断该点是否有雪堆。或者直接裸并查集。DFS#i...原创 2018-03-19 20:39:15 · 478 阅读 · 0 评论 -
codeforces 580C Kefa and Park DFS+树
http://codeforces.com/problemset/problem/580/C主人公要到公园去玩,这个公园是一个有根树,主人公起点在点1处,其叶子节点是餐厅所在地,其中红色标记的点都是a【i】==1的点,同时表示这个点有猫.主人公害怕猫,不希望经过连续m个点都有猫的路径,问主人公可以到达哪几个餐厅。注意几个小点: ①树的dfs判断叶子节点时可以+一个flag来判断。#i...转载 2018-03-19 15:55:42 · 189 阅读 · 0 评论 -
codeforces 115A - Party 树+DFS
http://codeforces.com/problemset/problem/115/A每个人有0或1个直系上司。 现在要分组,问最少几组,使得每组里面成员没有上司关系(直接、间接)。题目要求要每一组人都没有父子关系,即每棵树的一层取一个。 也就是给一片森林,求最大深度。 深搜求最大深度。#include <iostream>#include <algor...原创 2018-03-19 15:11:09 · 399 阅读 · 0 评论 -
【POJ】1321-棋盘问题 n皇后、dfs
http://poj.org/problem?id=1321 摆放棋子,摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,求摆放k个棋子的所有可行的摆放方案C。类似n皇后。#include <iostream>#include <cstring>using namespace std;const int maxn=10;char G[maxn][ma...原创 2018-02-27 18:50:18 · 173 阅读 · 0 评论 -
【POJ】3083- A Children of the Candy Corn DFS、BFS、迷宫靠墙走
http://poj.org/problem?id=3083 从S到E,分别求靠左边,右边和最短距离到达出口所需步数。dfs求靠左走的步数,方向数组按照左(0)上(1)右(2)下(3)。 注意:①当前方向的左方向 d=(d+3)%4 比如当前是右(2),此时的左方向是上(1)。 ②求起点到终点 的靠右走,即从终点向起点的靠左走。...原创 2018-02-27 17:10:03 · 160 阅读 · 0 评论 -
【POJ】2488 - A Knight's Journey dfs+回溯
http://poj.org/problem?id=2488给一个大小不超过8*8的棋盘,现希望从任意一格出发,按照日走法不重复的遍历整个棋盘,输出字典序列最小输出。若不行输出impossible。注意:①因要按字典序最小输出,所以从A1开始,因为从任意点出发总会经过A1. ②还是因为字典序最小,要注意方向数组的顺序,先想字典序小的方向出发。#include...原创 2018-02-26 22:52:25 · 158 阅读 · 0 评论 -
【POJ】1979 - Red and Black
http://poj.org/problem?id=1979#include <iostream>#include <cstring> using namespace std;const int maxn=25;int dx[4]={0,0,1,-1};int dy[4]={1,-1,0,0};int n,m;int sx,sy;char G[maxn][maxn];bool vis[m原创 2017-08-17 00:39:51 · 228 阅读 · 0 评论 -
【Usaco】2006 Dec - Cow Picnic
http://poj.org/problem?id=3256有向图,求所有点中,其他点都可以到达的点的个数。#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn=1005;int k,n,m;int cow[maxn];int head[maxn];int num=原创 2017-08-14 20:33:53 · 298 阅读 · 0 评论 -
【CodeForces】616C - The Labyrinth
http://codeforces.com/problemset/problem/616/C给定n行m列的图=由 “*”和“.”构成的图。 题意求每个“”上下左右相连的“.”的个数包括“”本身。预处理,否则会超时。#include <bits/stdc++.h>#include <set>using namespace std;int n,m;int dx[4]={0,0,1,-1};in原创 2017-08-14 17:03:33 · 351 阅读 · 0 评论 -
【CodeForces】598D - Igor In the Museum
http://codeforces.com/problemset/problem/598/D一个n*m的场地,“ . ”表示空地,“ * ”表示墙,每面墙上都有一幅画。给出一个空地点的坐标,问该点所在的空地区域旁边的墙上一共有多少副画。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using nam原创 2017-08-14 16:44:33 · 404 阅读 · 0 评论 -
【POJ】3009 - Curling 2.0
http://poj.org/problem?id=3009扔石头,上下左右四个方向如果某一个方向紧挨着block就不能扔这个方向,否则碰到block停住,block消失,再次四个方向扔。注意剪枝。#include <iostream>#include <cstring> using namespace std;const int maxn=35;int dx[4]={0,0,1,-1};in原创 2017-08-17 15:13:59 · 174 阅读 · 0 评论 -
第六届蓝桥杯决赛 完美正方形 DFS
标题:完美正方形如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的22个正方形 2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60 如【图1.png】那样组合,就是一种解法。此时, 紧贴上边沿的是:60 50 紧贴下边沿的是:...原创 2018-05-24 09:14:31 · 275 阅读 · 0 评论