提高算法
文章平均质量分 61
提高算法的题目
aisliveF
所行皆所愿
展开
-
双向广搜之字串变换
长度为20,每个点都有可能扩展6个,因此有120个,并且最长10步,因此最长的时间可能是120^10,因此必须采用双向广搜,一般应用于最小步数模型里面(这个里面的搜索状态可能会很大,因此采用,也就是优化)。只是扩展了一个节点,并不是扩展了一层节点,其次,A==B就不需要规则变动,直接return 0,因此需要修改,具体见代码二。步)以内能将 A变换为 B,则输出最少的变换步数;规则的含义为:在 A 中的子串 A1可以变换为 B1、A2可以变换为 B2…共进行了三次变换,使得 A变换为 B。原创 2024-09-12 17:16:22 · 149 阅读 · 0 评论 -
Flood Fill算法
可以在线性时间复杂度内,找到某个点所在的联通块。农夫约翰有一片 N∗M的矩形土地。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。现在,约翰想知道他的土地中形成了多少片池塘。每组相连的积水单元格集合可以看作是一片池塘。每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。输入格式。原创 2024-09-11 09:34:35 · 854 阅读 · 0 评论 -
多源BFS之矩阵距离
给定一个 N行 M列的 01矩阵 A,A[i][j]与 A[k][l]之间的曼哈顿距离定义为dist(i,j,k,l)=|i−k|+|j−l|输出一个 N行 M列的整数矩阵 B,其中: B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(i,j,x,y)一个 N行 M列的矩阵 B,相邻两个整数之间用一个空格隔开。全部位置为1的地方设置成dist=0,全部入队依次扩展。接下来一个 N行 M列的 01矩阵,数字之间没有空格。第一行两个整数 N,M。原创 2024-09-11 15:49:04 · 352 阅读 · 0 评论 -
双端队列广搜之电路维修
达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。之后 R行,每行 C个字符,字符是"/“和”"中的一个,表示标准件的方向。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。对于每组测试数据,第一行包含正整数 R和 C,表示电路板的行数和列数。对于每组测试数据,在单独的一行输出一个正整数,表示所需的最小旋转次数。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。每个格点都是电线的接点,每个格子都包含一个电子元件。原创 2024-09-11 20:15:32 · 270 阅读 · 0 评论 -
最小步数模型之魔板
可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。你要编程计算用最少的基本操作完成基本状态到特殊状态的转换,输出基本操作序列。Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。对于上图的魔板状态,我们用序列 (1,2,3,4,5,6,7,8)如果操作序列的长度大于0,则在第二行输出字典序最小的操作序列。输出文件的第一行包括一个整数,表示最短操作序列的长度。输入数据中的所有数字均为 1到 8 之间的整数。来表示,这是基本状态。原创 2024-09-11 17:59:34 · 224 阅读 · 0 评论 -
最短路模型
这头神奇的牛像其它牛一样喜欢吃草,给你一张地图,上面标注了 The Knight 的开始位置,树、灌木、石头以及其它障碍的位置,除此之外还有一捆草。它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。按顺序,每行输出一个路径中经过的单元格的坐标,左上角坐标为 (0,0),右下角坐标为 (n−1,n−1)。记录最短路模型的路径,从终点逆向推导,那么记录的就是从起点开始的路径,bfs一定记录的是最短的路径。原创 2024-09-11 12:24:44 · 845 阅读 · 0 评论 -
Flood Fill算法之山峰和山谷
若两个格子有公共顶点,那么它们就是相邻的格子,如与 (i,j)相邻的格子有(i−1,j−1),(i−1,j),(i−1,j+1),(i,j−1),(i,j+1),(i+1,j−1),(i+1,j),(i+1,j+1)。给定一个地图,为FGD想要旅行的区域,地图被分为 n×n的网格,每个格子 (i,j)的高度 w(i,j)是给定的。你的任务是,对于给定的地图,求出山峰和山谷的数量,如果所有格子都有相同的高度,那么整个地图即是山峰,又是山谷。接下来一个 n×n 的矩阵,表示地图上每个格子的高度 w。原创 2024-09-11 10:18:50 · 304 阅读 · 0 评论