开始无从下手,后来参考了别人的思路 http://blog.csdn.net/shuangde800/article/details/7726620
有了思路后不知道怎么求环,后来发现题目说了没岔路。。
#include<stdio.h> #include<string.h> #define MAX 200 int w, h; char maze[MAX][MAX]; int cases = 1; int isCircle; int num; int circleCount; int maxLen; int hasCircle; int dir[8][2] = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 }, { -1, -1 }, { -1, 1 }, { 1, -1 }, { 1, 1 } }; int pass(int i, int j, int k) { if (k < 4) return 1; int x = i + dir[k][0]; int y = j + dir[k][1]; if (x >= 0 && y >= 0 && maze[x][j] == '\\' && maze[i][y] == '\\' && (k == 5 || k == 6)) return 0; if (x >= 0 && y >= 0 && maze[x][j] == '/' && maze[i][y] == '/' && (k == 4 || k == 7)) return 0; return 1; } void dfs(int i, int j) { if (i < 0 || j < 0 || i >= 2 * h || j >= 2 * w) { isCircle = 0; return; } if (maze[i][j] == '*' || maze[i][j] == '\\' || maze[i][j] == '/') return; maze[i][j] = '*'; num++; int k; for (k = 0; k < 8; k++) { if (pass(i, j, k)) { dfs(i + dir[k][0], j + dir[k][1]); } } } int main() { while (scanf("%d%d", &w, &h) != EOF) { if (w == 0) break; memset(maze, 0, sizeof(maze)); getchar(); int i, j; char ch; for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { scanf("%c", &ch); if (ch == '\\') { maze[2 * i][2 * j] = '\\'; maze[2 * i + 1][2 * j + 1] = '\\'; } else if (ch == '/') { maze[2 * i][2 * j + 1] = '/'; maze[2 * i + 1][2 * j] = '/'; } } getchar(); } circleCount = 0; maxLen = -1; hasCircle = 0; for (i = 0; i < 2 * h; i++) for (j = 0; j < 2 * w; j++) { if (maze[i][j] == 0) { num = 0; isCircle = 1; dfs(i, j); if (isCircle && num >= 4) { hasCircle = 1; circleCount++; if (num > maxLen) maxLen = num; } } } printf("Maze #%d:\n", cases++); if (hasCircle) { printf("%d Cycles; the longest has length %d.\n\n", circleCount, maxLen); } else { printf("There are no cycles.\n\n"); } } return 0; }
相关推荐
uva705 Slash Maze 的代码,在UVaOJ上通过
Laravel开发-phpnet-laravel-trailing-slash 在Laravel中添加带有尾随斜杠的重定向。
一个creator 小游戏,可以让小白了解creator 开发的基本流程,帮助他们入门
前端开源库-remove-trailing-slash删除尾随斜杠,删除尾随斜杠
21-triple-slash-directives(三斜线指令21).pdf
资源来自pypi官网。 资源全名:discord-ext-slash-0.3.0rc1.tar.gz
discord-slash-commands,一个易于使用的软件包 如何安装 这很简单! 只需运行`npm i @ daimond113 / discord-slash-commands`,您就完成了! 如何使用 首先,如果您遇到了麻烦,可以在上询问,或者查看您将需要一...
hack-n-slash-sprint 最初在大约12小时内创建的hack n'slash游戏。
dot-slash-2是的库版本,它是leiningen插件。 它使您可以创建具有其他名称空间代理的名称空间。 它以创建名为的命名空间的想法命名. 使用dev实用程序,可以从任何地方使用./foo语法访问它们,而无需任何操作。 ...
自用案例
斜线命令行脚本,可从Reddit用户提交的内容中下载唯一的文件安装$ git clone https://github.com/2yr434hgd7fy384/u-slash$ pip install u-slash/用法u-slash [OPTIONS] [USERNAMES]... DIRECTORYu-slash下载任意...
npm i discord-slash-commands 特征 可客制化 多命令支持 每个行会命令支持 例子 const Discord = require ( 'discord.js' ) ; const client = new Discord . Client ( ) ; const { Slash } = require ( 'discord-...
连接-url-斜杠-消毒剂从你的快递网址中删除不必要的斜线的中间件安装 npm install connect-url-slash-sanitiser --save用法 var express = require('express');var urlSlashSanitiser = require('connect-url-slash-...
discord-py-slash-command是第一个为Discord Bot API库制作的公共斜杠命令处理程序库。 安装 您可以使用下面的给定PIP行轻松安装discord-py-slash-command库: pip install -U discord-py-slash-command 免责声明...
欢迎来到Discord Slash Bot :waving_hand: 该机器人是一个简单的Discord Slash Bot。 :house: 用法 克隆回购 使用命令npm install或yarn安装依赖项 将.env.example重命名为.env并填写所需的空白 通过此邀请将漫游...
hapi-trailing-slash# 一个插件,用于处理传入URL的常见尾随斜杠问题,以便my-route和my-route /具有一致的行为。安装npm install hapi-trailing-slash基本用途此插件将注册一个preResponse扩展名,该扩展名将在...
运行工作示例克隆示例,并使用以下版本在最新的Tomcat 8上运行: $ mvn clean package cargo:run 打开 笔记没有尾随/ 按登录按钮显示“ Hello”页面映射到/* 切换到slash-star分支,该分支将DispatcherServlet映射到...
vim-slash加强缓冲的搜索体验
npm install koa-no-trailing-slash 用法 const app = new ( require ( 'koa' ) ) ; app . use ( require ( 'koa-no-trailing-slash' ) ( ) ) ; app . use ( async ( ctx , next ) => { ctx . response . body = '...
discord-slash-js-wrapper 请注意:该包装器仍处于早期Alpha状态 用于Slash命令的Node.js Discord API包装器 响应命令的示例: const { Client , MessageEmbed , Message } = require ( "discord-slash" ) ; ...