深度搜索:棋盘问题,详见http://poj.org/problem?id=1321

//#include<bits/stdc++.h>

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long ll;
char a[10][10];
int vis[10];
int n,k;
int ans,now;
void DFS(int m)
{
if(now==k){
ans++;
return ;
}
if(m==n)
return ;
for(int i=0;i<n;i++){
if(!vis[i]&&a[m][i]=='#')
{
vis[i]=1;
now++;
DFS(m+1);
vis[i]=0;
now--; } }
DFS(m+1);
}
int main()
{
while(scanf("%d%d",&n,&k)&&n!=-1&&k!=-1)
{
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++)
scanf("%s",a[i]);
ans=now=0;
DFS(0);
printf("%d\n",ans);
}
}

 

BFS题目:Dungeon Master  (POJ2251: http://poj.org/problem?id=2251)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long ll;
int L,R,C;
char Map[][][];
int vis[][][];
int to[][]={,,,,,-,,,,,-,,,,,-,,};
int sx,sy,sz,ex,ey,ez;
int ans;
struct node{
int x;
int y;
int z;
int step;
};
int check(int x,int y,int z)
{
if(x<||y<||z<||x>=L||y>=R||z>=C)
return ;
else if(Map[x][y][z]=='#')
return ;
else if(vis[x][y][z]==)
return ;
return ;
}
int bfs()
{
queue<node> q;
node temp,next;
while(!q.empty())
{
q.pop();
}
temp.x=sx;
temp.y=sy;
temp.z=sz;
temp.step=;
q.push(temp);
while(!q.empty())
{
temp=q.front();
q.pop();
if(temp.x==ex&&temp.y==ey&&temp.z==ez)
{
return temp.step;
}
for(int i=;i<;i++)
{
next=temp;
next.x = temp.x+to[i][];
next.y = temp.y+to[i][];
next.z = temp.z+to[i][];
if(check(next.x,next.y,next.z))
continue;
vis[next.x][next.y][next.z] = ;
next.step = temp.step+;
q.push(next);
}
}
return ; }
int main()
{
while(scanf("%d%d%d",&L,&R,&C)&&L!=&&R!=&&C!=)
{
for(int i=;i<L;i++)
for(int j=;j<R;j++)
{
scanf("%s",Map[i][j]);
for(int k=;k<C;k++)
{
if(Map[i][j][k]=='S')
{
sx=i;
sy=j;
sz=k;
}
else if(Map[i][j][k]=='E')
{
ex=i;
ey=j;
ez=k;
}
}
}
memset(vis,,sizeof(vis));
ans=;
ans=bfs();
if(ans)
printf("Escaped in %d minute(s).\n",ans);
else
printf("Trapped!\n"); }
}

Catch That Cow :http://poj.org/problem?id=3278

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long ll;
int N,K;
int ans;
int vis[];
struct node
{
int value;
int step;
};
int bfs()
{
node temp,next;
queue<node> q;
temp.value=N;
temp.step=;
vis[temp.value]=;
q.push(temp);
while(!q.empty())
{
temp=q.front();
// cout<<temp.value<<endl;
q.pop();
if(temp.value==K)
return temp.step;
next=temp;
for(int i=;i<;i++)
{
if(i==)
{
next.value=temp.value-;
}
if(i==)
{
next.value=temp.value+;
}
if(i==)
{
next.value=temp.value*;
}
if(next.value<||next.value>)
continue;
if(!vis[next.value])
{
// cout<<1<<endl;
vis[next.value]=;
next.step=temp.step+;
q.push(next);
}
}
}
return ; } int main()
{ while(scanf("%d%d",&N,&K))
{
memset(vis,,sizeof(vis));
ans=;
ans=bfs();
if(N>=K)
printf("%d\n",N-K);
else
printf("%d\n",ans);
} return ; }

ACM搜索问题盘点的更多相关文章

  1. ACM——搜索(一)

    南邮OJ——1108 搜索(一) 时间限制(普通/Java):3500MS/10500MS          运行内存限制:65536KByte总提交:1023            测试通过:367 ...

  2. 【ACM - 搜索模板】

    [广搜模板] #include <iostream> #include <stdio.h> #include <string.h> #include <que ...

  3. Mine Number(搜索,暴力) ACM省赛第三届 G

    Mine Number Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Every one once played the gam ...

  4. HDU 4900 NO ACM NO LIFE(概率+枚举+搜索)(2014 Multi-University Training Contest 4)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4900 Problem Description There is an old country and ...

  5. acm位运算应用 搜索

    acm位运算应用 搜索 搜索    此处不讲题目,只讲位运算是怎样在这些题中实现和应用的.由于搜索题往往是基于对状态的操作,位运算往往特别有效,优化之后的效果可以有目共睹.    例1.POJ 132 ...

  6. “玲珑杯”ACM比赛 Round #18--最后你还是AK了(搜索+思维)

    题目链接   DESCRIPTION INPUT OUTPUT SAMPLE INPUT 1 4 2 1 2 5 2 3 5 3 4 5 5 5 SAMPLE OUTPUT 35 HINT 对于样例, ...

  7. ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. Poor Ramzi -dp+记忆化搜索

    ACM International Collegiate Programming Contest, Tishreen Collegiate Programming Contest (2017)- K. ...

  8. 2013 ACM网络搜索与数据挖掘国际会议

    ACM网络搜索与数据挖掘国际会议" title="2013 ACM网络搜索与数据挖掘国际会议"> 编者按:ACM网络搜索与数据挖掘国际会议(6th ACM Conf ...

  9. ACM 暴力搜索题 题目整理

    UVa 129 Krypton Factor 注意输出格式,比较坑爹. 每次要进行处理去掉容易的串,统计困难串的个数. #include<iostream> #include<vec ...

随机推荐

  1. HDU5992 - Finding Hotels

    原题链接 Description 给出个二维平面上的点,每个点有权值.次询问,求所有权值小于等于的点中,距离坐标的欧几里得距离最小的点.如果有多个满足条件的点,输出最靠前的一个. Solution 拿 ...

  2. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  3. JS-随机生成的密码

    randPassword(size) =>{ //数组 let seed = new Array('A','B','C','D','E','F','G','H','I','J','K','L', ...

  4. 追溯 React Hot Loader 的实现

    文:萝卜(沪江金融前端开发工程师) 本文原创,转载请注明作者及出处 如果你使用 React ,你可以在各个工程里面看到 Dan Abramov 的身影.他于 2015 年加入 facebook,是 R ...

  5. tcp为什么要三次握手,而不能二次握手?

    谢希仁版<计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞 ...

  6. Jquery ajaxfileupload.js结合.ashx文件实现无刷新上传

    先上几张图更直观展示一下要实现的功能,本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2 ...

  7. Python实现常用的数据结构

    Python中的数据结构   #巧用Python列表特性实现特定数据结构 #栈实现stack = []stack.push(x)stack.pop()stack[-1] #队列实现from colle ...

  8. 小实验3:实现haproxy的增、删、查

    # Author:Alano # -*- conding:utf-8 -*- # 这里有一个问题:为什么手动删除了haproxy_new中的内容,但是执行添加命令的时候依然显示数据已经存在? f = ...

  9. ASP.NET CORE的Code Fist后Models更改了怎么办?

    上次我写到MVC的code fist后,自动生成数据库并自动生成web页面了 点击打开链接 那么随着项目需求的逐步明确,model变化了怎么办呢?其实和上次一样的,有两条关键的语句要记住 Add-Mi ...

  10. I Hate It HDU - 1754

    很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老师有 ...