搜索
圆溜溜的奶黄包
这个作者很懒,什么都没留下…
展开
-
C语言中用队列和搜索解决"加1乘2平方问题"
描述 给定两个正整数m、n,问只能做加1、乘2和平方这三种变化,从m变化到n最少需要几次 输入 输入两个10000以内的正整数m和n,且m小于n 输出 输出从m变化到n的最少次数 输入样例 1 16 输出样例 3#include<iostream>#include<stdio.h>#include<queue>//用队列声明头文件 usi原创 2017-11-07 10:52:16 · 1454 阅读 · 0 评论 -
其实用暴搜就可以却用了深搜的Safecraker------二I
=== Op tech briefing, 2002/11/02 06:42 CST === “The item is locked in a Klein safe behind a painting in the second-floor library. Klein safes are extremely rare; most of them, along with Klein and原创 2018-01-30 11:58:24 · 262 阅读 · 0 评论 -
//广搜Bfs简单题//Catch That Cow------三N
Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 10...原创 2018-02-11 22:17:57 · 422 阅读 · 0 评论 -
//深搜dfs//棋盘问题------三Q
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n原创 2018-02-12 13:14:48 · 155 阅读 · 0 评论 -
//广搜bfs//迷宫问题------三S
定义一个二维数组: 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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。 In原创 2018-02-12 18:53:44 · 220 阅读 · 0 评论 -
//深搜dfs//blockhouses------三V
Suppose that we have a square city with straight streets. A map of a city is a square board with n rows and n columns, each representing a street or a piece of wall. A blockhouse is a small castle原创 2018-02-13 13:39:17 · 134 阅读 · 0 评论 -
//深搜dfs//又做一次的经典题?//素数环------三I
A ring is compose of n circles as shown in diagram. Put natural number 1, 2, …, n into each circle separately, and the sum of numbers in two adjacent circles should be a prime. Note: the number of原创 2018-02-07 15:58:05 · 174 阅读 · 0 评论 -
//广搜bfs//Knight Moves------三T
Background Mr Somurolov, fabulous chess-gamer indeed, asserts that no one else but him can move knights from one position to another so fast. Can you beat him? The Problem Your task is to w原创 2018-02-15 18:23:39 · 206 阅读 · 0 评论 -
//广搜bfs//Red and Black------三U
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can’t原创 2018-02-16 16:46:25 · 146 阅读 · 0 评论 -
//深搜dfs//找到答案就一路return才不会超时//Square------三Y
Given a set of sticks of various lengths, is it possible to join them end-to-end to form a square? Input The first line of input contains N, the number of test cases. Each test case begins with a原创 2018-02-16 18:21:46 · 892 阅读 · 0 评论 -
//dfs深搜//WA了五百次//有多组数据注意清空数组或者控制边界//Curling[poj3009]------三M
https://vjudge.net/contest/205707#problem/M http://poj.org/problem?id=3009 题目链接在这 这道题我觉得思路不难,但是坑很多,AC用了好长时间。 刚开始是TLE,后来发现需要在深搜函数里加上下面这句,大于最小步数的就可以直接跳过。 if(move>=min) return; 后来一直WA,实在原创 2018-02-09 18:25:33 · 206 阅读 · 0 评论 -
//dfs//传说中最经典的深搜//oil deposits[hdu 1241]------三L
https://vjudge.net/contest/205707#problem/L 题目地址在这里 特别简单的深搜题,从头开始遍历,每找到一个@油田数加1,然后用深搜把这块油田里的其他@都标记成1,防止后面找重。#include<stdio.h>int m,n;int xc[]={0,0,-1,1,1,-1,1,-1};int yc[]={1,-1,0,0,1,-1,-1,1原创 2018-02-09 13:52:27 · 149 阅读 · 0 评论 -
C语言用搜索和队列知识解决“电子老鼠创迷宫问题”(noj1042)
输入 本题包含一个测例。在测例的第一行有四个由空格分隔的整数,分别表示起点的坐标S(x.y)和终点的坐标T(x,y)。从第二行开始的12行中,每行有12个字符,描述迷宫的情况,其中’X’表示建筑物,’.’表示路. 输出 输出一个整数,即电子老鼠走出迷宫至少需要的步数。 输入样例 2 9 11 8 XXXXXXXXXXXX X……X.XXX X.X.XX原创 2017-11-07 14:01:42 · 585 阅读 · 0 评论 -
C语言中用队列和搜索解决跳马问题(多组测试数据)noj1043//运行时错误的一种解决方案
描述 在国际象棋中,马的走法与中车象棋类似,即俗话说的“马走日”,下图所示即国际象棋中马(K)在一步能到达的格子(其中黑色的格子是能到达的位置)。 现有一200*200大小的国际象棋棋盘,棋盘中仅有一个马,给定马的当前位置(S)和目标位置(T),求出马最少需要多少跳才能从当前位置到达目标位置。 输入 本题包含多个测例。输入数据的第一行有一个整数N(1<=N<=1000),表示原创 2017-11-07 15:18:07 · 1535 阅读 · 0 评论 -
【为什么数组不能用time命名?】独轮车问题(noj1044)坑爹题目!骗我钱财!毁我青春!!!QAQ TAT :(
描述 独轮车的轮子上有红、黄、蓝、白、绿(依顺时针序)5种颜色,在一个如下图所示的20*20的迷宫内每走一个格子,轮子上的颜色变化一次。独轮车只能向前推或在原地转向。每走一格或原地转向90度均消耗一个单位时间。现给定一个起点(S)和一个终点(T),求独轮车以轮子上的指定颜色到达终点所需的最短时间。 http://www.noj.cn/images/problemimages/wheel.原创 2017-11-09 09:35:32 · 628 阅读 · 1 评论 -
【关于数组两种使用的思考】C语言中用map函数和广搜解决八数码问题(noj1571)
用一个9位数代替3x3的数组表示不同状态。可以节省空间,把二维转成一维。需要用数组时就用两个for循环把9位数转化为3x3的数组。 用map函数记录讨论过的状态和到达这种状态用了几步。同时解决了用used数组和step数组无法解决的判重和记录步数问题。在其他广搜问题中used数组其实是起到了一个描述状态是否被讨论过的作用,中括号里的数代表一个状态,=1就是这个状态已经讨论过,=0就是还没有讨论过。原创 2017-11-09 11:46:58 · 1021 阅读 · 0 评论 -
关于穷举、深搜、广搜的思考。
判断是使用深搜还是广搜,我觉得主要有三个条件? 1.能不能通过穷举列出所有情况从而解决问题。 2.能不能通过判断中间结点的情况来否定这个分支的下的所有情况。 3.如果以上两个条件都不符合,那是不是要求最短或最小的情况?如果符合第一个条件,可以使用最原始的深搜解决问题。最原始的深搜其实就是递归调用函数,本质上就是一种穷举,是从起点先一次性探到终点再从终点往回讨论其他结点的穷举。 因为情况有限,原创 2017-11-09 22:55:42 · 433 阅读 · 0 评论 -
C语言中用队列和广搜解决六数码问题。
描述 现有一两行三列的表格如下: A B C D E F 把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下: 1 3 5 2 4 6 布局1 2 5 6 4 3 1 布局2 定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放原创 2017-11-10 18:27:46 · 846 阅读 · 0 评论 -
极大极小搜索
极大极小搜索 时限:1000ms 内存限制:10000K 总时限:3000ms 描述: 搜索n层,第一层取最大值,先输入两个整数n、randseed,用randseed设置随机数种子。 搜索时每层4个分支,能不能想这个分支走用函数canmoveto()判断,内容如下: int canmoveto(int m, int dire) { return(r原创 2017-11-23 10:59:53 · 354 阅读 · 0 评论 -
//深搜//栈//Anagrams by Stack------二Y
How can anagrams result from sequences of stack operations? There are two sequences of stack operators which can convert TROT to TORT: [ i i i i o o o o i o i i o o i o ] where i st原创 2018-02-01 13:54:15 · 230 阅读 · 0 评论 -
//深搜//已经做过一遍了//求图像周长------三K
https://vjudge.net/contest/205707#problem/K 题目好长,懒得复制了。 这道题其实我已经做过一遍也写过一篇还挺详细的题解了。 http://blog.csdn.net/lydia_ke/article/details/78443167 这道题主要就两部分,第一部分确定图像范围,第二部分求图像周长。用深搜把点击的图像中的点找全并都标记成1原创 2018-02-09 11:56:45 · 209 阅读 · 0 评论 -
//二刷//记忆化搜索//深搜dfs+动态规划dp//poj1088滑雪
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 ...原创 2018-02-20 18:10:24 · 256 阅读 · 0 评论