http://115.28.138.223:81/view.page?opid=5

这道题问的很怪. 起点DFS,每一个点还要DFS一次,统计不能到终点的个数

数据量不大这样做也能AC

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int x,y,ax,ay,bx,by;//'#'0, '+'1, '-'2, '|'3, '.'4, 'S', 'T'
int x1[]={,-,, };
int y1[]={, ,,-};
int d[][],lable[][],labll[][];
int numb,shit=;
void ddfs(int xx,int yy)
{
if(shit==){return;}
if(xx==by&&yy==bx){shit=;return;}
if(labll[xx][yy]==||d[xx][yy]==||xx<||yy<){return;}
labll[xx][yy]=;
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
ddfs(xx+x1[i],yy+y1[i]);
if(shit==){return;}
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
ddfs(xx+x1[i],yy+y1[i]);
if(shit==){return;}
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
ddfs(xx+x1[i],yy+y1[i]);
if(shit==){return;}
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
ddfs(xx+x1[i],yy+y1[i]);
if(shit==){return;}
}
}
return;
}
void dfs(int xx,int yy)//3 0
{
if(lable[xx][yy]==||d[xx][yy]==||xx<||yy<){return;}
lable[xx][yy]=;
for(int i=;i<y;i++)
{
for(int j=;j<x;j++)
{
labll[i][j]=;
}
}
shit=;
ddfs(xx,yy);
if(shit==){numb++;}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
dfs(xx+x1[i],yy+y1[i]);
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
dfs(xx+x1[i],yy+y1[i]);
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
dfs(xx+x1[i],yy+y1[i]);
}
}
if(d[xx][yy]==)
{
for(int i=;i<;i++)
{
dfs(xx+x1[i],yy+y1[i]);
}
}
return;
} int main()
{
while(cin>>y>>x)
{
char c;
numb=;
for(int i=;i<y;i++)
{
for(int j=;j<x;j++)
{
cin>>c;
if(c=='S'){d[i][j]=;ax=j;ay=i;}
if(c=='T'){d[i][j]=;bx=j;by=i;}
if(c=='#'){d[i][j]=;}
if(c=='+'){d[i][j]=;}
if(c=='-'){d[i][j]=;}
if(c=='|'){d[i][j]=;}
if(c=='.'){d[i][j]=;}
}
}
shit=;
ddfs(ay,ax);
if(shit==){cout<<"I'm stuck!"<<endl;continue;}
dfs(ay,ax);
cout<<numb<<endl;
for(int i=;i<y;i++)
{
for(int j=;j<x;j++)
{
d[i][j]=lable[i][j]=;
}
}
}
return ;
}

CCF 模拟E DFS深搜的更多相关文章

  1. CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】

    [编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...

  2. DFS 深搜专题 入门典例 -- 凌宸1642

    DFS 深搜专题 入门典例 -- 凌宸1642 深度优先搜索 是一种 枚举所有完整路径以遍历所有情况的搜索方法 ,使用 递归 可以很好的实现 深度优先搜索. 1 最大价值 题目描述 ​ 有 n 件物品 ...

  3. 【DFS深搜初步】HDOJ-2952 Counting Sheep、NYOJ-27 水池数目

    [题目链接:HDOJ-2952] Counting Sheep Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 ...

  4. DFS深搜——Red and Black——A Knight&#39;s Journey

    深搜,从一点向各处搜找到全部能走的地方. Problem Description There is a rectangular room, covered with square tiles. Eac ...

  5. Red and Black(DFS深搜实现)

    Description There is a rectangular room, covered with square tiles. Each tile is colored either red ...

  6. poj 2386:Lake Counting(简单DFS深搜)

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18201   Accepted: 9192 De ...

  7. UVA 165 Stamps (DFS深搜回溯)

     Stamps  The government of Nova Mareterrania requires that various legal documents have stamps attac ...

  8. HDU_1241 Oil Deposits(DFS深搜)

    Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...

  9. 解救小哈——dfs深搜

    问题描述: 小哈去玩迷宫,结果迷路了,小哼去救小哈.迷宫由n行m列的单元格组成(n和m都小于等于50),每个单元格要么是空地,要么是障碍物. 问题:帮小哼找到一条从迷宫的起点通往小哈所在位置的最短路径 ...

随机推荐

  1. 数据库SQL语句学习--view

    1.新建一个view create view view_name as select * from table_name where... 2.删除一个view drop view view_name ...

  2. 利用a标签解析URL

    参考资料 http://www.cnblogs.com/Wayou/p/things_you_dont_know_about_frontend.html 很多时候我们有从一个URL中提取域名,查询关键 ...

  3. 开源License

    http://www.open-open.com/bbs/view/1319816219625 http://my.oschina.net/yangsheng/blog/190917

  4. 3D Math Library的姿势

    http://www.opentk.com/doc/math http://www.gamedev.net/topic/484756-fast-vector-math-library-for-net/ ...

  5. php的if语句单行与多行

    //正确: //错误写法 $b = //if前面不能带 等号

  6. CSS样式优先级

    关于CSS样式优先级 一般情况下: [1位重要标志位] > [4位特殊性标志] > 声明先后顺序 !important > [ id > class > tag ] 使用 ...

  7. VisualStudio.gitignore git 忽略

    https://github.com/kaedei/gitignore/blob/master/VisualStudio.gitignore

  8. Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布

       FastCGI编程包括四部分:初始化编码.接收请求循环.响应内容.响应结束循环. FCGX_Request request; FCGX_Init(); ); FCGX_InitRequest(& ...

  9. Orchard源码分析(4.2):Orchard.Logging.LoggingModule类

    与CollectionOrderModule一样,LoggingModule也是一个Autofac模块.它以属性注入的方式给需要日志服务的对象设置Logger.    如果一个类有Orchard.Lo ...

  10. list转map 键值对

    Map<Long,Account> map = new HashMap<Long,Account>(); for(int i=0;i<list.size();i++){ ...