
搜索算法
-初心不负-
这个作者很懒,什么都没留下…
展开
-
1818:红与黑
总时间限制: 1000ms 内存限制: 65536kB 描述 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一原创 2017-07-20 11:52:46 · 733 阅读 · 0 评论 -
6044:鸣人和佐助
总时间限制: 1000ms 内存限制: 65536kB 描述 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置。地图上的每个位置都可以走到,只不过有些位置上有大蛇丸的手下,需要先打败大蛇丸的手下才能到这些位置。鸣人有一定数量的查克拉,每一个单位的查克拉可以打败一个大蛇丸的手下。假设鸣人可以往上下左右四个方向移动,每移动一个距离需要原创 2017-07-23 17:41:45 · 1479 阅读 · 0 评论 -
P1605 迷宫
http://write.blog.youkuaiyun.com/mdeditor 题目背景迷宫 【问题描述】给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。输入样例 输出样例【数据规模】1≤N,M≤5题目描述输入输出格式输入格式:原创 2017-08-16 16:49:48 · 357 阅读 · 0 评论 -
P1162 填涂颜色
题目原地址:https://www.luogu.org/problem/show?pid=1162 题目描述由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下:0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 0 0 1 1 1 10 1 1 0原创 2017-08-02 18:50:31 · 359 阅读 · 0 评论 -
P1443 马的遍历
原题目地址:https://www.luogu.org/problem/show?pid=1443 题目描述有一个n*m的棋盘(1#include<bits/stdc++.h>using namespace std;int n,m,sx,sy,cx[8]={1,1,2,2,-1,-1,-2,-2},cy[8]={2,-2,1,-1,2,-2,1,-1},s,a[401][401],l,r,b[原创 2017-08-02 17:39:46 · 1760 阅读 · 0 评论 -
方格分割
6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。 唉,当时没有做出来,用深搜也没有跑出来,后来看了网上一些思路,自己写了一下。#include<bit原创 2017-08-20 09:48:16 · 672 阅读 · 0 评论 -
P1219 八皇后
题目原地址:https://www.luogu.org/problem/show?pid=1219#sub 题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。 上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列原创 2017-08-14 21:44:55 · 278 阅读 · 0 评论 -
1032: 递归2(组合)
时间限制: 1 Sec 内存限制: 128 MB 提交: 923 解决: 667 [提交][状态][讨论版] 题目描述【题意】 组合就是从n个元素中抽出r个元素(不分顺序且r < = n), 我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。【输入格式】 一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。 【输出格式】 所有的组合,原创 2017-10-06 19:09:18 · 416 阅读 · 0 评论 -
1033: 递归3(组合+判断素数)
时间限制: 1 Sec 内存限制: 128 MB 提交: 1015 解决: 584 [提交][状态][讨论版] 题目描述 【题意】 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3原创 2017-10-06 20:02:04 · 1138 阅读 · 0 评论 -
8787:数的划分
总时间限制: 1000ms 内存限制: 65536kB 描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。 输出:一个整数,即不同的分法。输入 两个整数n,k (6 < n <= 200,2 <= k <= 6),中间用单个空格隔开。 输出 一个整数,即不同原创 2017-09-12 21:56:33 · 913 阅读 · 0 评论 -
90:滑雪
总时间限制: 1000ms 内存限制: 65536kB 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15原创 2017-07-19 15:40:19 · 1545 阅读 · 1 评论 -
7084:迷宫问题(dfs)
总时间限制: 1000ms 内存限制: 65536kB 描述 定义一个二维数组: 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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入 一原创 2017-07-22 18:33:54 · 1042 阅读 · 1 评论 -
7084:迷宫问题(bfs)
总时间限制: 1000ms 内存限制: 65536kB 描述 定义一个二维数组: 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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入 一原创 2017-07-22 17:20:13 · 927 阅读 · 0 评论 -
8465:马走日
总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入 第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,原创 2017-07-20 19:00:02 · 374 阅读 · 0 评论 -
7834:分成互质组
总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。输入 第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0<=x<=n-1,原创 2017-07-21 13:12:41 · 1711 阅读 · 0 评论 -
2971:抓住那头牛
总时间限制: 2000ms 内存限制: 65536kB 描述 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?输入原创 2017-07-18 10:00:07 · 2271 阅读 · 0 评论 -
323:棋盘问题
总时间限制: 1000ms 内存限制: 65536kB 描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 输入 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆原创 2017-07-18 13:08:31 · 731 阅读 · 0 评论 -
dfs 实现全排列
本题实现的是输入一个数实现从一到这个数的全排列,也是基础的dfs问题。c++可以直接调用一个函数实现感觉还是自己理解最好。#include<bits/stdc++.h>using namespace std;int a[101],b[101],n;//a[101]数组里面保存的是序列,b[101]是标记数组 void prin(){ int i; for(i=1;i<=n;i原创 2017-07-21 16:51:01 · 1005 阅读 · 0 评论 -
素数环
素数环:从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。 基础dfs,回溯。#include<bits/stdc++.h>using namespace std;int a[101],b[101],n;//a[101]数组里面保存的是序列,b[101]是标记数组 int pd(int x,int y){ int sum=x+y,i; if(sum<2) re原创 2017-07-21 18:33:06 · 589 阅读 · 0 评论 -
7218:献给阿尔吉侬的花束
总时间限制: 100ms 内存限制: 65536kB 描述 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的原创 2017-07-21 19:19:27 · 984 阅读 · 1 评论 -
2727:仙岛求药
总时间限制: 1000ms 内存限制: 65536kB 描述 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他原创 2017-07-18 16:23:35 · 1908 阅读 · 0 评论 -
6264:走出迷宫
总时间限制: 1000ms 内存限制: 65536kB 描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。输入 第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。 接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符’.’表原创 2017-07-18 17:31:21 · 1244 阅读 · 0 评论 -
1037: 递归7(走迷宫)
时间限制: 1 Sec 内存限制: 128 MB 提交: 1277 解决: 529 [提交][状态][讨论版] 题目描述【题意】 有一个n*m格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这n*m个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没原创 2017-10-07 21:22:38 · 613 阅读 · 0 评论