搜索--bfs/dfs
Xiao-wei1998
学生
展开
-
POJ 1321
题目链接 : 棋盘问题在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k &...原创 2018-03-15 19:24:12 · 113 阅读 · 0 评论 -
洛谷P1219
题目链接:八皇后我们通过观察可以看出来,对于Q点,行和列都很好处理,关键是 斜 较难处理。对于 / 这种倾斜,我们发现 纵坐标 + 横坐标 是一个定值! 对于 \ 纵坐标 - 横坐标 为定值!而且我们可以发现对于 \ 和 / 控制的不同的对角线的值都是唯一确定的,只用一个数组存就可以!#include<iostream>#include<cstdio>using ...原创 2018-04-17 20:52:49 · 270 阅读 · 0 评论 -
洛谷P1218
题目链接:特殊的质数肋骨通过观察可以看出第一个数一定是 2 3 5 7 中的一个(必须满足第一个数是质数。)然后我们再枚举满足的奇数(偶数肯定会出现合数!)#include<iostream>#include<cstdio>#include<queue>using namespace std;int n;int pd(int x){ for(int...原创 2018-04-12 18:59:42 · 243 阅读 · 0 评论 -
codevs 1297
题目链接:硬币思路:将重量和面值分别存入两个数组 v[] m[] 中,dfs 即可!#include<iostream>#include<cstdio>using namespace std;bool vis[500][5000],vis1[5000];int v[5000],m[5000];int n,k,w,tot,ans,l,r;void dfs(int ...原创 2018-04-12 20:03:03 · 166 阅读 · 0 评论 -
洛谷 P 1560
题目链接:蜗牛的旅行思路:dfs 从 (1,1)开始搜索分别向右和向下搜索,遇到障碍物就改变方向,遇到自己走过的路线就更新最大值#include<iostream>#include<cstdio>using namespace std;int a[300][300];bool vis[300][300],vis1[300][300]; // vis 标记蜗牛走的路线...原创 2018-04-12 20:53:39 · 159 阅读 · 0 评论 -
康拓展开
先推荐一篇博客:康拓展开题目链接:八数码难题(网上的大佬都好强啊。。。本菜鸡表示看不懂他们写的啥先保存着!!!#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>using namespace std;int fac[...原创 2018-04-18 20:31:09 · 181 阅读 · 0 评论 -
双向广搜
双向广搜(内含八数码题解双向广度优先搜索算法的步骤如下: 1)定义状态结点 与广度优先搜索算法相同。 2)确定结点扩展规则 与广度优先搜索算法也相同。但需要定义两个队列,一个存储(从初始结点向目标结点)正向扩展的结点,另一个存储(从目标结点向初始结点)反向扩展的结点。 3)搜索策略 (1)从正向扩展的队列头取出一个结点,检查它按照扩展规则是否能够扩展,如果能则产生一个新结点。 (2...原创 2018-04-18 21:14:36 · 325 阅读 · 0 评论 -
洛谷 P1433
题目链接:吃奶酪一道搜索题(水。。。不过要注意剪枝否则会 T#include<iostream>#include<cstdio>#include<queue>#include<cmath>using namespace std;const int N = 100;int n;struct Node{ double x; ...原创 2018-05-01 15:07:24 · 293 阅读 · 1 评论 -
CodeVs 2651
题目链接:孔子教学#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int a[1000],b[1000];bool vis[1000];int x,y,z,maxx = -1e9;void dfs(int k,i...原创 2018-04-11 21:29:31 · 120 阅读 · 0 评论 -
搜索 (未完 2018.05.02更新
好奇怪的游戏(bfs#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int x1,x2,y1,y2;queue<int>qx;queue<int>qy;int xx[15] ={1,1,2...原创 2018-04-11 20:34:21 · 201 阅读 · 0 评论 -
HDU 1495
题目链接:非常可乐大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是没有刻度的,且 S==N...原创 2018-03-16 21:06:19 · 127 阅读 · 0 评论 -
火炬
洛谷 - 1988题目描述2008北京奥运会,你想成为四川汶川的一名火炬手,经过层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个正整数N(N<=100000),求一个最小的正整数M,使得N * M的十进制表示形式里只含有1和0。输入输出格式输入格式:一行,输入一个整数N。输出格式:输出一行,如果有解,输出最小的M,否则输出“No Solution”输入输出样例输入样例#1: 复...原创 2018-01-05 19:13:56 · 600 阅读 · 0 评论 -
SDNU 1241
传送门: 北望村八卦阵Description 北望村人人习武已成习惯,这个村子里有一个上古道人留下の八卦阵,今天,初出茅庐的陆历川决定挑战一下这个八卦阵,八卦阵中有很多东西.代表这里是安全的可以走*代表这里是不安全的不可以走L代表这里有阴仪W代表这里有阳仪陆历川知道在这个八卦阵的X,Y处有一部功法,他想要去拿到它,现在他想知道他从入口(入口固定为1,1)进入八卦阵拿到功法再从入口出来最少需要...原创 2017-12-20 07:51:34 · 150 阅读 · 0 评论 -
SDNU 1022
题目链接:成语接龙题目要求输出最长的龙的长度,主要的问题是如何计算重叠区域的长度!我们可以假设重叠部分的长度为 1 (再依次增加) ,但是因为最后输入的是一个字符,没有 s[1],我们可以在前面给他加上一个字符(任意都可以,,最好还是加个空格吧,万一点背,加上的字符正好可以被判断,那就得不偿失了。。)我们在找重叠部分面积时,不必找到最大的重叠面积,找最小的就行 hellolo 和 loloabc ...原创 2018-03-26 20:00:38 · 342 阅读 · 0 评论 -
洛谷P1164
题目链接:小A点菜题目思路:从第一道菜开始往后搜索,如果当前菜的价格大于携带的钱,回溯一步后接着搜索#include<iostream>#include<cstdio>using namespace std;int a[120];int n,m,tot;void dfs(int k,int x){ if(k>m) return ; if(k == m...原创 2018-04-02 20:19:54 · 180 阅读 · 0 评论 -
洛谷 P1706
题目链接:全排列问题还是上代码吧。。。#include<iostream>#include<cstdio>#include<cstring>#include<iomanip> #include<algorithm>using namespace std;bool vis[15];int a[15];int n;int p...原创 2018-03-27 19:25:15 · 378 阅读 · 0 评论 -
洛谷P1162
题目链接:填色游戏思路:从边缘出发,如果是 0 就 dfs 一下把和他相邻的 0 都给标记一下在把剩下为0 的元素修改成 2 输出即可用两个二维数组就可以实现#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n;int a[50][50];int b...原创 2018-04-15 21:22:55 · 195 阅读 · 0 评论 -
洛谷P1088
题目链接:火星人思路:这一题一看就是一个全排列问题!先求出给定序列的全排列是第几个,然后加上 m 后输出这个全排列即可!看似一道很简单的题!如果采用枚举的话,不用想了,肯定超时啊!!!我们看一下数据,发现 m 挺小的,那我们就想到了,是不是可以通过枚举 m 来求解呢?答案当然是肯定的了!我们先一步到给定的全排列,然后枚举出第 m 个即可!!!。所以,困难又来了,如何一步到给定的全排列?我也不会。。...原创 2018-04-25 17:31:15 · 196 阅读 · 0 评论