深度搜索:棋盘问题,详见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. session不会过期

    $(function () { window.setInterval(function () { $.post('random.html'); }, 60000); }); 加在母版页里,使用与长时间 ...

  2. caffe︱深度学习参数调优杂记+caffe训练时的问题+dropout/batch Normalization

    一.深度学习中常用的调节参数 本节为笔者上课笔记(CDA深度学习实战课程第一期) 1.学习率 步长的选择:你走的距离长短,越短当然不会错过,但是耗时间.步长的选择比较麻烦.步长越小,越容易得到局部最优 ...

  3. android DecorView深入理解

    开发中,通常都是在onCreate()中调用setContentView(R.layout.custom_layout)来实现想要的页面布局.页面都是依附在窗口之上的,而DecorView即是窗口最顶 ...

  4. mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】

    1.修改表名:alert table oldtablename rename newtablename; 或者alert table oldtablename rename to newtablena ...

  5. Linux下搭建SVN服务器遇到的问题及解决方法,

    1.checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist... 奇怪,怎么会提示库不存在呢?肯定是哪里配置问题.后来尝试了半天,也在网上搜 ...

  6. Java之List排序出错

    Java之List排序出错 Bound mismatch: The generic method sort(List<T>) of type Collections is not appl ...

  7. java.sql.SQLException:Invalid value for getInt()-'zhangsan'

    1.错误描述 java.sql.SQLException:Invalid value for getInt()-'zhangsan' 2.错误原因 在遍历打印查询结果时,rs.getInt(3),而在 ...

  8. C#利用 string.Join 泛型集合快速转换拼接字符串

    C#利用 string.Join 泛型集合快速转换拼接字符串 List<int> superior_list = new List<int>(); superior_list. ...

  9. Logger之简单入门

    Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢: ...

  10. spring拦截器的简单实现Interceptor

    原文链接:http://lixuanbin.iteye.com/blog/2250100 1. 需求描述 某内部管理系统采用Spring MVC搭建,用户可以登录系统进行CRUD以及其他的一些日常管理 ...