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. Mysql 与 Python socket

    py1.py # -*- coding: utf-8 -*- import sqlalchemy import tushare import pandas import socket import s ...

  2. Flash性能优化

    Adobe Scout All the internal operations of Flash Player. Flash Builder Actionscript 3 code level pro ...

  3. css隔行换色

    .tab1 tr:nth-of-type(odd){ background:#eeeeee;} .tab1 tr:nth-of-type(even){ background:#f8f8f8;} .ta ...

  4. 部署lamp服务器

    系统:CentOS 6.5 64位 1.卸载旧版本软件 rpm -qa | grep mysql #查询是否已经安装MySQL,如有执行下面的操作将其全部删除 rpm -e mysql --nodep ...

  5. docker管理shipyard中文版v3.0.2更新

    shipyard中文版v3.0.2更新  https://console.dockerclub.net/ https://dockerclub.net/docs/intro/getting_start ...

  6. Visual Studio示例代码浏览器

    https://visualstudiogallery.msdn.microsoft.com/4934b087-e6cc-44dd-b992-a71f00a2a6df

  7. 微型orm fluentdata

    http://fluentdata.codeplex.com/documentation#Query

  8. 配置文件操作模块,configparser

    configparser configparser用于处理特定格式的文件,其本质上是利用open来操作文件. # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 ...

  9. 使用proguard混淆java web项目代码

    1.首先下载proGuard.zip到本地: proguard4.5beta4.tar.zip解压开,2.新建文本文档,修改文件名为XXX.pro,然后复制下面内容到.pro -injars 'Y:\ ...

  10. JQuery Easy Ui 可装载组合框 - ComboBox

    可装载组合框 - ComboBox 继承自$.fn.combo.defaults,通过$.fn.combobox.defaults覆盖默认值 combobox显示的是一个可以编辑的文本框和一个下拉列表 ...