dfs&bfs
thoughtspark
有过大数据数仓开发经验,以及用户画像项目,曾参加过算法类竞赛,未来走机器挖掘方向,有志同道合的朋友可以关注我 微信:Thoughtspark
展开
-
搜索入门--算是全排列
#include#includeusing namespace std;const int mx=10000+5;int n,ans[mx],vis[mx];void dfs(int len){ int i; if(len>n) { for(i=1;i { cout if(i==n) cout else原创 2017-08-11 11:44:39 · 270 阅读 · 0 评论 -
luogu P1019 单词接龙 【dfs】
#include<iostream> //.size() 和length() 不能存在一个函数中 不然会报错#include<string.h>#include<string>using namespace std;string a[22],start;int ans=-1,book[22],n;int judge(string s,string d){ int i;原创 2017-10-14 15:51:41 · 442 阅读 · 0 评论 -
luogu P1101 单词方阵【dfs】
题目描述 给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如: 输入: 8 输出: qyiz原创 2017-11-08 20:49:01 · 242 阅读 · 0 评论 -
51nod 1416 两点 【dfs+特殊判断】
题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”。基础级别的时候是在一个n×m单元上玩的。像这样: 每一个单元有包含一个有色点。我们将用不同的大写字母来表示不同的颜色。 这个游戏的关键是要找出一个包含同一颜色的环。看上图中4个蓝点,形成了一个环。一般的原创 2017-11-08 20:30:42 · 242 阅读 · 0 评论 -
luogu P1443 马的遍历 【队列 dfs】
题目描述 有一个n*m的棋盘(1//这是一个简单的dfs做的#include<iostream>#include<string.h>//memset要用到#include<queue> #include<iomanip>//setw要用到 using namespace std;bool vis[500][500]; //是否走过 int map[500][500]; //存步数i原创 2017-11-08 20:26:52 · 519 阅读 · 0 评论 -
luogu P1141 01迷宫【dfs记忆化】
题目描述 有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。 输入输出格式 输入格式:输入的第1行为两个正整数n,m。 下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格。 接下来m行,每行原创 2017-11-07 22:55:13 · 231 阅读 · 0 评论 -
P2799 国王的魔镜
#includeusing namespace std;int n;string str;int dfs(string str,int n){if(n%2) return n;string s="";int flag=0,l=0,r=str.size()-1;while(l{if(str[l]!=str[r])return n;else s+=str原创 2017-08-13 16:57:41 · 417 阅读 · 0 评论 -
poj 1979 Red and Black 深搜
Time Limit: 1000MS Memory Limit: 30000KTotal Submissions: 37145 Accepted: 20185DescriptionThere is a rectangular room, covered with square tiles. Each tile is colored eithe原创 2017-09-09 10:20:27 · 172 阅读 · 0 评论 -
P2666 Bessie的秘密牧场
#include#include#includeusing namespace std;int n;int ans=0,now=0;void dfs(int x){ if(x==4) { if(now==n) ans++; return ; } else { int i; for(i=0;i<=sqrt(double(n));i++)原创 2017-09-09 09:40:40 · 377 阅读 · 0 评论 -
搜索实现迷宫(队列)
bfs#include #include using namespace std;#define MAX_N 10#define MAX_M 10const int INF = 100000000;typedef pair P;char maze[MAX_N][MAX_M+1] ={ { '#', 'S', '#' , '#','#', '#', '#', '原创 2017-09-09 09:42:33 · 313 阅读 · 0 评论 -
dfs
题目描述给出起点和终点的坐标及接下来T个时刻的风向(东南西北),每次可以选择顺风偏移1个单位或者停在原地。求到达终点的最少时间。如果无法偏移至终点,输出“-1”。输入输出格式输入格式:第一行两个正整数x1,y1,表示小明所在位置。第二行两个正整数x2,y2,表示小明想去的位置。第三行一个整数T,表示T个时刻。第四至第N+3行,每行原创 2017-09-12 21:01:00 · 218 阅读 · 0 评论 -
深搜---价值和 所有情况
#include#include#include#include#includeusing namespace std;int total,num,cnt;int a[3]={1,2,3};vector ans;int e=0;void dfs(int d){ e++; if(num==total) { cnt++; return ; } else原创 2017-09-08 19:04:27 · 146 阅读 · 0 评论 -
HDU6113 度度熊的01世界(深搜DFS,2017"百度之星"程序设计大赛 - 初赛(A))
度度熊的01世界Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1582 Accepted Submission(s): 612Problem Description度度熊是一个喜欢计算机的孩子,在计算机的世界原创 2017-09-06 22:45:35 · 197 阅读 · 0 评论 -
dfs
题目背景无题目描述给定一个数组,长度为n,当数组内t(t>=2&&t输出数总和。输入输出格式输入格式:第一行一整数n第二行n个数,表示给定数组输出格式:两个数用空格隔开,分别代表求和数量和所有满足条件t相加的值输入输出样例输入样例#1:61 2 3 4 5 6原创 2017-09-13 20:02:56 · 146 阅读 · 0 评论 -
搜索入门--hd 1241 搜索模板
Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33493 Accepted Submission(s): 19462Problem DescriptionThe GeoSu原创 2017-08-20 20:02:50 · 264 阅读 · 0 评论 -
HDU6165 FFF at Valentine(深搜dfs,2017 HDU多校联赛 第9场)
FFF at ValentineTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1065 Accepted Submission(s): 510Problem DescriptionAt Valen转载 2017-09-04 22:55:45 · 239 阅读 · 0 评论 -
搜索入门--八皇后 P 1219
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找原创 2017-09-03 22:45:38 · 174 阅读 · 0 评论 -
hdu1241
#includeusing namespace std;#include#includechar map[101][101];int dir[2][8]={{-1,0,1,0,-1,-1,1,1},{0,-1,0,1,-1,1,-1,1}};//bool vis[101][101];int n,m;void dfs(int x,int y){//vi原创 2017-08-13 21:12:12 · 115 阅读 · 0 评论 -
P1256 显示图像 【队列维护bfs】
题目描述 古老的显示屏是由N×M个像素(Pixel)点组成的。一个像素点的位置是根据所在行数和列数决定的。例如P(2,1)表示第2行第1列的像素点。那时候,屏幕只能显示黑与白两种颜色,人们用二进制0和1来表示。0表示黑色,1表示白色。当计算机发出一个指令:P(x,y)=1,则屏幕上的第x行第y列的阴极射线管就开始工作,使该像素点显示白色,若P(x,y)=0,则对应位置的阴极射线管不工作,像素点保持原创 2017-12-05 20:26:15 · 291 阅读 · 0 评论