dfs
文章平均质量分 57
Demoo.
来记录不会的题啦
展开
-
E - Don‘t Really Like How The Story Ends
如果大于的话,相当于与u连了一个大于con的编号,那么这个时候我们就得在u上添加一个到con的路了,所以ans++,添加完之后当前找的点编号++,然后遍历当前要找的结点的上一个结点。注意一个细节就是应该在1结点加一个与n+1相连的边(因为我们需要找到n)题意:有n个点,原来有路线,使n个点从开始遍历是1~n的dfs序。思路:用con来表示当前找的点,ans来表示要添加的路的条数。我们当前遍历的v小于con的话就不用管,继续遍历与u相连的v。从1开始遍历,比如我们遍历与u相连的结点v。原创 2022-11-23 16:11:59 · 164 阅读 · 0 评论 -
P1189 `SEARCH`
年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且车上装有用于发射车子移动路线的装置。那个装置太旧了,以至于只能发射关于那辆车的移动路线的方向信息。编写程序,通过使用一张小镇的地图帮助警察局找到那辆车。程序必须能表示出该车最终所有可能的位置。小镇的地图是矩形的,上面的符号用来标明哪儿可以行车哪儿不行。“.”表示小镇上那块地方是可以行车的,而符号“X”表示此处不能行车。拉尔夫所开小车的初始位置用字符的“*”表示,且汽车能从初始位置通过。原创 2022-11-14 22:40:37 · 69 阅读 · 0 评论 -
C. 连锁商店 (暴力优化)
你正在 11 号景点,你将会搭乘缆车去往各个景点,每到一个景点,你都可以领取该景点的连锁商店的新客优惠红包(包括 11 号景点)。接下来 mm 行,每行两个正整数 ui,viui,vi (1≤ui原创 2022-11-14 15:37:53 · 580 阅读 · 0 评论 -
namonamo Daimayuan Online Judge
一天,她们正在听她们最喜欢的歌,一首歌的歌词可以看着一个只包含小写字母的字符串,保证字符串的长度为偶数。不幸的是,她们的 eirpods 是拼夕夕九块九包邮的,发生了一些神奇的故障,使得对于每个字母,形式化题意:给定一个长度是偶数,仅有小写字母构成的字符串,判断是否能被分成两个完全相同的子序列。在一首歌放完后,她们一边抱怨耳机的质量,同时惊奇地发现,她们两个人所听到的字母各自组成的字符串。那么我们可以知道前半段的前缀相等,后半段的后缀相等,前半段多出来的和后半段多出来的中间段相等。,表示该组数据的答案。原创 2022-11-03 10:30:31 · 243 阅读 · 0 评论 -
P6183 [USACO10MAR] The Rock Game S
在奶牛回家休息和娱乐之前,Farmer John 希望它们通过玩游戏获得一些智力上的刺激。游戏板由 nn 个相同的孔组成,这些孔最初。一头母牛要么用石头盖住一个洞,要么揭开一个先前被盖住的洞。的定义是哪些洞被石头覆盖,哪些洞没有覆盖。游戏的目标是让奶牛准确地到达每个可能的游戏状态一次,然后返回到所有洞都没有覆盖的状态。以下是他们其中一次游戏的示例(空的洞用O表示,用石头盖住的洞用X现在牛被卡住玩不下去了!他们必须打开一个洞,不管他们打开哪个洞,他们都会到达一个他们已经到达的状态。原创 2022-10-29 22:34:14 · 1367 阅读 · 0 评论 -
P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
农民 John 以拥有世界上最健康的奶牛为傲。他知道每种饲料中所包含的牛所需的最低的维他命量是多少。请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少。给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。维他命量以整数表示,每种饲料最多只能对牛使用一次,数据保证存在解。原创 2022-10-29 10:00:56 · 226 阅读 · 0 评论 -
HDU - 5937 E - Equation(搜索)
题意:给你1~9的数的个数,让你求形如x+y=z的柿子的个数(x,y,z都是个位数,任意一个数不同就算是一个不同的柿子)如果读入的数超过了这些数的个数,那么直接输出36就行。思路:打表一下可以知道,最终不同的柿子只有36个。然后我们再进行dfs,找每个柿子能不能选就行了。然后用结构体记下每个柿子的数还有他们的总数。原创 2022-10-28 10:27:33 · 240 阅读 · 0 评论 -
P1498 南蛮图腾
题目描述自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?输入格式每个数据一个数字,表示图腾的大小(此大小非彼大小) n<=10输出格式这个大小的图腾输入输出样例输入 #1复制2输出 #1复制 /\ /__\ /原创 2022-05-13 10:04:54 · 397 阅读 · 0 评论 -
P1331 海战
题目描述在峰会期间,武装部队得处于高度戒备。警察将监视每一条大街,军队将保卫建筑物,领空将布满了F-2003飞机。此外,巡洋船只和舰队将被派去保护海岸线。不幸的是因为种种原因,国防海军部仅有很少的几位军官能指挥大型海战。因此,他们考虑培养一些新的海军指挥官,他们选择了“海战”游戏来帮助学习。在这个著名的游戏中,在一个方形的盘上放置了固定数量和形状的船只,每只船却不能碰到其它的船。在这个题中,我们仅考虑船是方形的,所有的船只都是由图形组成的方形。编写程序求出该棋盘上放置的船只的总数。输入格式输原创 2022-05-12 21:23:44 · 104 阅读 · 0 评论 -
P1036 [NOIP2002 普及组] 选数
题目描述已知 nn 个整数 x_1,x_2,\cdots,x_nx1,x2,⋯,xn,以及 11 个整数 kk(k<nk<n)。从 nn 个整数中任选 kk 个整数相加,可分别得到一系列的和。例如当 n=4n=4,k=3k=3,44 个整数分别为 3,7,12,193,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+12=223+7+19=293+7+19=297+12+19=387+12+19=383+12+19=343+12+19=34原创 2022-05-12 20:06:54 · 600 阅读 · 0 评论 -
p1030求先序遍历
题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度\le 8≤8)。输入格式22行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式11行,表示一棵二叉树的先序。输入输出样例输入 #1复制BADCBDCA输出 #1复制ABCD中序遍历:左根右后序遍历:左右根先序遍历:根左右因为后序遍历的每次遍历都是根结点,所以我们先把后序遍历的根结点输出,然后在中序遍历中找到根结点所在的位置原创 2022-05-12 10:59:40 · 187 阅读 · 0 评论 -
D. Vertical Paths(Codeforces Round #787 (Div. 3))(dfs)
You are given a rooted tree consisting ofnnvertices. Vertices are numbered from11tonn. Any vertex can be the root of a tree.Atreeis a connected undirected graph without cycles. Arooted treeis a tree with a selected vertex, which is called thero...原创 2022-05-11 15:46:11 · 531 阅读 · 0 评论 -
dfs各大题目类型
1.遍历各个位置,并且记录每组遍历的路程遍历各个位置的时候就在每个dfs(u)里遍历下一个dfs(u+1)。记录路程用数组。如果要求每个数只能用一次或者每个点只能走一次的话用一个bool或int数组来储存他的状态(遍历过或没遍历过)如果问题有边界的情况,如给你了n个位置,或者是n*n的图我们遍历每一行的话,递归的出口就是当我们那层的数等于n,如果一个位置有多种情况(如能填多个数)的话,我们需要回溯操作的时候,先在dfs之前把状态修改,在dfs之后把状态复原。例题1:n个数的全排列题目原创 2022-05-10 11:35:06 · 1163 阅读 · 0 评论 -
两种搜索总结
搜索时所有的点都只遍历一次,所以不管是bfs还是dfs我们都需要开个bool数组或int数组来记录是否被搜过(一般搜索点的话用bool数组,搜索图的话用int数组初始化为-1)存图的话用邻接表,单链表中e[n]存数 ne[n]存下一个数的下标 head=-1头结点邻接表的头节点是一个数组h[n]遍历单链表的话for(int i =head;i!=-1;i=ne[i]){//i相当于下标 cout<<e[i];}遍历...原创 2022-04-05 14:38:55 · 408 阅读 · 0 评论 -
单词接龙
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和 astonish,如果接成一条龙则变为 beastonish ,另外相邻的两部分不能存在包含关系,例如 at 和 atide 间不能相连。输入格式输入的第一行为一个单独的整数 n (n \le 20)n(n≤20) 表示单词数,以下 nn 行每行有一个单词,输入的最后一行为一个原创 2022-04-22 20:57:18 · 97 阅读 · 0 评论 -
滑雪(dfs)
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑原创 2022-04-20 20:53:54 · 126 阅读 · 0 评论 -
城堡问题(dfs)
图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成m*n(m≤50,n≤50)个方块,每个方块可以有0~4面墙。输入格式:程序从标准输入设备读入数据。第一行是两个整数,分别是南北向、东西向的方块数。在接下来的输入行里,每个方块用一个数字(0≤p≤50)描述。用一个数字表示方块周围的墙,1表示西墙,2表示北墙,4表示东墙,8表示南墙。每个方块用代表其周围墙的数字之和表示。城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。输入的...原创 2022-04-13 01:06:09 · 932 阅读 · 1 评论 -
马踏棋盘。
有一个n×m的棋盘,在某个点 (x, y) 上有一个马,要求计算出马到达棋盘上任意一个点最少要走几步。数据规模:对于全部的测试点,保证1≤x≤n≤400,1≤y≤m≤400。输入格式:输入一行四个整数,分别为 n, m, x, y。输出格式:一个 n×m 的矩阵,表示马到达某个点最少要走几步(左对齐,宽 5 格,不能到达输出 −1)。输入样例:3 3 1 1样例">输出样例:在这里给出相应的输出。例如:0 3 2 3 -1 ..原创 2022-04-12 20:54:36 · 536 阅读 · 0 评论 -
数的重心(dfs)
给定一颗树,树中包含 n个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数 n,表示树的结点数。接下来 n−1 行,每行包含两个整数 a和 b,表示点 a 和点 b 之间存在一条边。输出格式输出一个整数 m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围1≤n≤10原创 2022-04-05 14:41:28 · 220 阅读 · 0 评论 -
pta地下迷宫探索(详解)
地道战是在抗日战争时期,在华北平原上抗日军民利用地道打击日本侵略者的作战方式。地道网是房连房、街连街、村连村的地下工事,如下图所示。我们在回顾前辈们艰苦卓绝的战争生活的同时,真心钦佩他们的聪明才智。在现在和平发展的年代,对多数人来说,探索地下通道或许只是一种娱乐或者益智的游戏。本实验案例以探索地下通道迷宫作为内容。假设有一个地下通道迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关。请问你如何从某个起点开始在迷宫中点亮所有的灯并回到起点?输入格式:输入第原创 2022-04-03 19:47:42 · 978 阅读 · 0 评论