搜索
王文波~
清。。
展开
-
codeforce-----------Polygon
Polygon is not only the best platform for developing problems but also a square matrix with side nn, initially filled with the character 0.On the polygon, military training was held. The soldiers placed a cannon above each cell in the first row and a canno原创 2020-05-27 23:10:33 · 314 阅读 · 0 评论 -
IDA*--------回转游戏
如下图所示,有一个“#”形的棋盘,上面有1,2,3三种数字各8个。给定8种操作,分别为图中的A~H。这些操作会按照图中字母和箭头所指明的方向,把一条长为8的序列循环移动1个单位。例如下图最左边的“#”形棋盘执行操作A后,会变为下图中间的“#”形棋盘,再执行操作C后会变成下图最右边的“#”形棋盘。给定一个初始状态,请使用最少的操作次数,使“#”形棋盘最中间的8个格子里的数字相同。输入格式...原创 2020-03-04 00:12:11 · 140 阅读 · 0 评论 -
IDA*---------排书
给定n本书,编号为1-n。在初始状态下,书是任意排列的。在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。我们的目标状态是把书按照1-n的顺序依次排列。求最少需要多少次操作。输入格式第一行包含整数T,表示共有T组测试数据。每组数据包含两行,第一行为整数n,表示书的数量。第二行为n个整数,表示1-n的一种任意排列。同行数之间用空格隔开。输出格式每组数据输出一个...原创 2020-03-03 23:07:24 · 98 阅读 · 0 评论 -
双向DFS------送礼物
达达帮翰翰给女生送礼物,翰翰一共准备了N个礼物,其中第i个礼物的重量是G[i]。达达的力气很大,他一次可以搬动重量之和不超过W的任意多个物品。达达希望一次搬掉尽量重的一些物品,请你告诉达达在他的力气范围内一次性能搬动的最大重量是多少。输入格式第一行两个整数,分别代表W和N。以后N行,每行一个正整数表示G[i]。输出格式仅一个整数,表示达达在他的力气范围内一次性能搬动的最大重量。数据...原创 2020-03-03 22:05:16 · 123 阅读 · 0 评论 -
迭代加深--------- 加成序列
满足如下条件的序列X(序列中元素被标号为1、2、3…m)被称为“加成序列”:1、X[1]=12、X[m]=n3、X[1]<X[2]<…<X[m-1]<X[m]4、对于每个 kk(2≤k≤m2≤k≤m)都存在两个整数 ii 和 jj (1≤i,j≤k−11≤i,j≤k−1,ii 和 jj 可相等),使得X[k]=X[i]+X[j]。你的任务是:给定一个整数n,找出符...原创 2020-03-03 17:55:54 · 99 阅读 · 0 评论 -
DFS之剪枝与优化----------生日蛋糕
7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为NπNπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i层蛋糕是半径为RiRi, 高度为HiHi的圆柱。当i < M时,要求RiRi > RiRi+1且HiHi > HiHi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q = SπSπ ,请编程对给...原创 2020-03-01 23:55:35 · 122 阅读 · 0 评论 -
DFS之剪枝与优化-------木棒
题目大意:n跟木棍,可以拼接成相同长度的最小长度的木棒,问长度是多少思路:枚举每根木棒1.优化搜索顺序:从大到小枚举木棍长度2.只枚举长度是总和的约数3.按照组合数枚举4.如果当前木棍加到木棒中失败了,则直接略过所有长度相等的木棍5.如果木棍第一根失败,则一定失败6.若最后一根失败,则一定失败ac代码如下:#include <iostream>#include &l...原创 2020-03-01 20:22:26 · 326 阅读 · 0 评论 -
DFS之剪枝与优化-----数独
9*9的数独,输入一些数,输出完整的数独中的数,保证输入的数只有一个解。#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N = 9, M = 1 << N;int ones[M], map[M];int row[...原创 2020-03-01 16:46:17 · 194 阅读 · 0 评论 -
DFS之剪枝与优化-------小猫爬山
题目大意:n只猫下山,每只猫都有不同的重量,让他们坐缆车下山,缆车有一个最大承重梁,最少用多少缆车可以把这些猫都运下去思路:枚举每一只猫,质量从大到小,使分支最少,每只猫可以加入已有的缆车或者开一辆新车#include <iostream>#include <cstring>#include <algorithm>using namespace st...原创 2020-02-29 23:59:14 · 137 阅读 · 0 评论 -
DFS之搜索顺序-----分成互质组
给定 nn 个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?输入格式第一行是一个正整数 nn。第二行是 nn 个不大于10000的正整数。输出格式一个正整数,即最少需要的组数。数据范围1≤n≤101≤n≤10输入样例:614 20 33 117 143 175输出样例:3#include <iostream>#include <c...原创 2020-02-26 23:07:45 · 126 阅读 · 0 评论 -
DFS之搜索顺序------单词接龙
单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。#include <iostream...原创 2020-02-26 20:50:28 · 176 阅读 · 0 评论 -
DFS之搜索顺序-----马走日
马在中国象棋以日字形规则移动。请编写一段程序,给定 n∗mn∗m 大小的棋盘,以及马的初始位置 (x,y)(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入格式第一行为整数 TT,表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标 n,m,x,yn,m,x,y。输出格式每组测试数据包含一行,为一个整数,表示马能...原创 2020-02-26 17:37:37 · 298 阅读 · 0 评论 -
DFS之连通性模型----红与黑
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量。在接下来的 HH 行中,每行包括 WW 个字符。每个字符表示一块瓷砖的颜色,规则...原创 2020-02-26 16:33:53 · 266 阅读 · 0 评论 -
DFS之连通性模型-------迷宫
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n∗nn∗n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。注意:A、...原创 2020-02-26 14:30:04 · 251 阅读 · 0 评论 -
A*-----第K短路
给定一张N个点(编号1,2…N),M条边的有向图,求从起点S到终点T的第K短路的长度,路径允许重复经过点或边。注意: 每条最短路中至少要包含一条边。输入格式第一行包含两个整数N和M。接下来M行,每行包含三个整数A,B和L,表示点A与点B之间存在有向边,且边长为L。最后一行包含三个整数S,T和K,分别表示起点S,终点T和第K短路。输出格式输出占一行,包含一个整数,表示第K短路的长度,如...原创 2020-02-26 13:34:57 · 182 阅读 · 0 评论 -
A*-----八数码
在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3X 4 67 5 8在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 X例如,示例中图形就可以通过让“X”先后与右、下、右三个方向的数字交换成功得到正确排列。...原创 2020-02-25 23:36:33 · 114 阅读 · 0 评论 -
双向广搜-----字串变换
已知有两个字串 AA, BB及一组字串变换的规则(至多6个规则):A1A1-> B1B1A2A2-> B2B2…规则的含义为:在 AA中的子串 A1A1可以变换为 B1B1、A2A2可以变换为 B2B2…。例如:AA=’abcd’ BB=’xyz’变换规则为:‘abc’->‘xu’ ‘ud’->‘y’ ‘y’->‘yz’则此时,AA可以经过...原创 2020-02-25 20:45:55 · 656 阅读 · 0 评论 -
双端队列广搜----电路维修
达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个R行C列的网格(R,C≤500),如下图所示。每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一...原创 2020-02-25 15:50:59 · 146 阅读 · 0 评论 -
最小步数模型-魔板
Rubik 先生在发明了风靡全球的魔方之后,又发明了它的二维版本——魔板。这是一张有 88 个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这 88 种颜色用前 88 个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列 (1,2,3,4,5,6...原创 2020-02-24 23:12:57 · 186 阅读 · 0 评论 -
多源BFS--矩阵距离
给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])B[i][j]=min1≤x≤...原创 2020-02-24 17:39:16 · 111 阅读 · 0 评论 -
迷宫问题-bfs
给定一个 n×nn×n 的二维数组,如下所示:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。数据保证至少存在一条从左上角走...原创 2020-02-20 23:15:15 · 610 阅读 · 0 评论 -
山峰和山谷-bfs-武汉加油
FGD小朋友特别喜欢爬山,在爬山的时候他就在研究山峰和山谷。为了能够对旅程有一个安排,他想知道山峰和山谷的数量。给定一个地图,为FGD想要旅行的区域,地图被分为 n×nn×n的网格,每个格子 (i,j)(i,j)的高度 w(i,j)w(i,j)是给定的。若两个格子有公共顶点,那么它们就是相邻的格子,如与 (i,j)(i,j)相邻的格子有(i−1,j−1),(i−1,j),(i−1,j+1)...原创 2020-02-20 19:33:36 · 247 阅读 · 0 评论 -
城堡问题-Flood Fill-bfs
1 2 3 4 5 6 7 #############################1 # | # | # | | ######—#####—#---#####—#2 # # | # # # # ##—#####—#####—#####—#3 # | | # # # # #...原创 2020-02-20 17:30:32 · 298 阅读 · 0 评论 -
Flood Fill-dfs
农夫约翰有一片 N∗MN∗M 的矩形土地。最近,由于降雨的原因,部分土地被水淹没了。现在用一个字符矩阵来表示他的土地。每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。现在,约翰想知道他的土地中形成了多少片池塘。每组相连的积水单元格集合可以看作是一片池塘。每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。请你输出共有多少片池塘,即矩阵...原创 2020-02-20 13:44:50 · 146 阅读 · 0 评论