CCF 模拟E DFS深搜
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深搜的更多相关文章
- CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】
[编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...
- DFS 深搜专题 入门典例 -- 凌宸1642
DFS 深搜专题 入门典例 -- 凌宸1642 深度优先搜索 是一种 枚举所有完整路径以遍历所有情况的搜索方法 ,使用 递归 可以很好的实现 深度优先搜索. 1 最大价值 题目描述 有 n 件物品 ...
- 【DFS深搜初步】HDOJ-2952 Counting Sheep、NYOJ-27 水池数目
[题目链接:HDOJ-2952] Counting Sheep Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- DFS深搜——Red and Black——A Knight's Journey
深搜,从一点向各处搜找到全部能走的地方. Problem Description There is a rectangular room, covered with square tiles. Eac ...
- Red and Black(DFS深搜实现)
Description There is a rectangular room, covered with square tiles. Each tile is colored either red ...
- poj 2386:Lake Counting(简单DFS深搜)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18201 Accepted: 9192 De ...
- UVA 165 Stamps (DFS深搜回溯)
Stamps The government of Nova Mareterrania requires that various legal documents have stamps attac ...
- HDU_1241 Oil Deposits(DFS深搜)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
- 解救小哈——dfs深搜
问题描述: 小哈去玩迷宫,结果迷路了,小哼去救小哈.迷宫由n行m列的单元格组成(n和m都小于等于50),每个单元格要么是空地,要么是障碍物. 问题:帮小哼找到一条从迷宫的起点通往小哈所在位置的最短路径 ...
随机推荐
- Redis学习——环境搭建以及基础命令使用
0. 前言: 这篇文章旨在对redis环境的搭建以及对redis有个大概的认识. 一.redis搭建: 环境:ubuntu 14 软件包:redis-3.0.3.tar.gz 安装步骤: 1. 首先解 ...
- asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别
转载自 : <asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别> 先复制过来 ...
- 跨区域的application共享问题。
@1 new Thread(){ @Override public void run() { getConnect(); } }.start(); 如果我们的一个的应用程序有俩个入口.那么如果我们在这 ...
- 使用idea开发Springmvc
使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 http://my.oschina.net/gaussik/blog/385697?fromerr=A4EKE0Ix idea1 ...
- 将Ubuntu 15.10升级到Ubuntu 16.04
Ubuntu 16.04 LTS 代号为 Xenial Xerus,其最终版将于 2016 年 4 月 21 日正式发布,Ubuntu16.04 将是非常受欢迎的开源操作系统 Ubuntu 的第 6 ...
- ScriptManager与UpdatePanel总结
1.From http://www.cnblogs.com/Tim-Seven/archive/2011/02/11/1952409.html Ajax Extensions 2.ScriptMana ...
- 基于iSCSI的SQL Server 2012群集测试(五)--镜像,作业,复制分发测试
7.1.镜像测试 群集可以正常镜像到非群集环境,本次测试采用,无见证服务器的sql server验证的镜像连接,不同的是群集环境的镜像IP是采用SQL Server虚拟IP进行通信连接. 群集服务器: ...
- C#5.0 特性
Visual Studio 2012 中 Visual C# 的新增功能 Lambda表达式 表达式树:把代码,转换成数据,然后分析数据发现其组成部分,最后转换成可以传递到其他程序的字符串 LinQ表 ...
- PHP读取word文档
在PHP中读取和写入WORD文档的代码 <? php // 建立一个指向新COM组件的索引 $word = new COM(”word.application”) or die(”Can't s ...
- html 图像映射
个人先做而一个例子 <body> <img src="图像映射/enterdesk.com-D69055E2B422567CB273963EA05FF7D4.jpg&quo ...