dfs
文章平均质量分 56
dfs
SSL_kyx
简~介
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
YbtOJ——广度搜索【例题3】立体推箱子
C. 【例题3】立体推箱子 题目 题解 求最少步数,当然用广搜。 队列里记录当前这一步的三个状态,分别是:坐标(x,y)和箱子状态( t )。 其中箱子的状态有三种:立着,横躺着,竖躺着。分别用0,1,2表示。 箱子横着躺或竖着躺占两个格子,对于横躺,将其坐标记作右边的格子;对于竖躺,坐标记作下面的格子。 再加些处理0() 代码 #include<iostream> #include<algorithm> #include<cstring> #include<cs原创 2021-06-20 11:57:12 · 212 阅读 · 0 评论 -
YbtOJ——广度搜索【例题2】山峰和山谷
B. 【例题2】山峰和山谷 题目 题解 先解释一下样例: 红笔圈着的是两个山峰,其余的形成一个山谷。 每次从未访问过的点开始BFS,对它相邻的点(八连通)进行搜索: 若搜索的点等于当前点,则加入队列 若搜索的点大于当前点,则标记它不可能为山峰 若搜索的点小于当前点,则标记它不可能为山谷 代码 #include<iostream> #include<algorithm> #include<cstdio> #include<queue> using na原创 2021-06-19 11:12:22 · 335 阅读 · 0 评论 -
YbtOJ——深度搜索【例题2】数独游戏
B. 【例题2】数独游戏 题目 题解 经过不断地debug,终于用自己的方法做出这题了。 我的方法跟书上的不同,自认为更简单些。 用三个二维数组分别记录每一行、列、宫中是否出现1~9,即判重,来进行剪枝。 dfs每个输入时就储存下来的空着的格子,枚举1~9并根据判重数组判断能否填入该数字。 填完所有空格后,输出并直接退出,最后别忘了初始化那三个判重数组,因为有多组数据。 若点(x,y)(x,y)(x,y)的数为 ttt,三个判重的数组可以这样写: fx[x][t]=1;//行 fy[y][t]=1;//列原创 2021-06-13 12:01:30 · 407 阅读 · 3 评论 -
YbtOJ——深度搜索【例题1】拔河比赛
A. 【例题1】拔河比赛 题目 题目链接 题解 由于本题数据过水,用爆搜即可过掉。 只考虑一个队伍,搜索每个人加不加进这个队伍里,若不加其实就是加进另一个队。 若当前加的人数未达半数,即可加进去; 若当前没加的人数未达半数,即可不加进去 代码 #include<iostream> #include<cmath> using namespace std; int t,n,m,ans,a[100]; void dfs(int dep,int c1,int c2,int sum,int原创 2021-06-13 08:56:17 · 394 阅读 · 1 评论 -
【SSL_1438】骑马修栅栏 _P2731
游乐场 Time Limit:10000MS Memory Limit:65536K Total Submit:111 Accepted:52 Case Time Limit:1000MS Description 据新闻报道,Orz教主在太平洋中央建了一个大游乐园,其中有许多小岛,每个小岛上有且仅有一个游乐设施,有的小岛与小岛之间有海底隧道连接,而有的没有,一个游乐设施对一个人只开放一次,花的钱与得到的快乐值成正比。一开始,你可以选择被空投到任意一个小岛。当你想离开游乐园时,你可以打电话叫飞机来接,但不能原创 2021-01-03 16:43:15 · 159 阅读 · 0 评论 -
【SSL_1759】求连通分量 #邻接矩阵 #邻接表 #dfs #bfs #队列
求连通分量 Time Limit:1000MS Memory Limit:65536K Total Submit:481 Accepted:290 Description 求一个图的连通分量 Input n 顶点数(<=100) 边 Output 连通分量 Sample Input 8 6 3 1 2 2 5 5 4 4 1 8 7 0 0 Sample Output 4原创 2021-01-02 20:01:23 · 2743 阅读 · 4 评论 -
【SSL_1202】滑雪(normal)【洛谷_P1434】[SHOI2002]
滑雪 Time Limit:1000MS Memory Limit:65536K Total Submit:244 Accepted:57 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 1原创 2020-12-19 10:43:44 · 162 阅读 · 1 评论 -
【SSL_1458】dfs数字金字塔
数字金字塔 题目 你和权权是一对很好很好的朋友。有一天,你们无聊得很,便上网冲浪,突然在一个叫做USACO的网中找到了一个游戏:《数字金子塔》。游戏规则是这样的:求一个数字金字塔中从最高点开始在底部任意处结束的路径经过数字的和的最大,其中的每一步可以走到下方的点也可以到达右下方的点。例如在下面的例子中,从7 — 3 — 8 — 7 –- 5的路径产生了最大和:30。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 你们便约定了谁能计算出最后的值便是赢者。你仰天(天花板)长叹:我能成为赢者吗,要知原创 2020-08-18 19:47:49 · 1203 阅读 · 5 评论 -
【SSL_1100】数字金字塔(DP)—搜索、顺推、逆推三种代码都有
#include<stdio.h> #include<iostream> #include<cstring> #include<cstdlib> #include<cmath> using namespace std; int meno[1001][1001],a[1001][1001],n; int dfs(int x,int y){ if(meno[x][y]!=0){ return meno[x][y]; }if(x==n)meno[x][y]=a[x][y]; else{ meno原创 2020-08-18 19:50:32 · 702 阅读 · 5 评论 -
谷仓的安保
谷仓的安保 题目 Farmer John给谷仓安装了一个新的安全系统,并且要给牛群中的每一个奶牛分配一个有效的密码。 一个有效的密码由L(3 <= L <= 15)个小写字母(来自传统的拉丁字母集’a’…‘z’)组成, 至少有一个元音(‘a’, ‘e’, ‘i’, ‘o’, 或 ‘u’)和两个辅音(除去元音以外的音节), 并且是按字母表顺序出现的(例如,'abc’是有效的,而’bac’不是) 。 给定一个期望长度L和C个小写字母,写一个程序,打印出所有的长度为L、能由这给定的C个字母组成的有效密原创 2020-08-18 14:43:15 · 2081 阅读 · 7 评论 -
特殊的质数肋骨 (DFS)
特殊的质数肋骨 (DFS) 题目 农民约翰母牛总是产生最好的肋骨。 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数; 二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。 写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。原创 2020-08-18 09:46:39 · 658 阅读 · 5 评论
分享