URAL 1033 Labyrinth
生活随笔
收集整理的這篇文章主要介紹了
URAL 1033 Labyrinth
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
URAL_1033
??? 要注意下兩個entrance不一定是連通的,然后用dfs計數(shù)就可以了。
#include<stdio.h> #include<string.h> #define MAXD 40 int N, g[MAXD][MAXD], vis[MAXD][MAXD]; char b[MAXD]; int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1}; void init() {int i, j, k;memset(g, 0, sizeof(g));for(i = 1; i <= N; i ++){scanf("%s", b + 1);for(j = 1; j <= N; j ++)if(b[j] == '.')g[i][j] = 1;} } void dfs(int x, int y, int &ans) {int i, newx, newy;vis[x][y] = 1;for(i = 0; i < 4; i ++){newx = x + dx[i], newy = y + dy[i];if(!g[newx][newy])++ ans;else if(!vis[newx][newy])dfs(newx, newy, ans);} } void solve() {int i, j, k, ans = 0;memset(vis, 0, sizeof(vis));dfs(1, 1, ans);if(!vis[N][N])dfs(N, N, ans);printf("%d\n", (ans - 4) * 9); } int main() {while(scanf("%d", &N) == 1){init();solve();}return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/staginner/archive/2012/05/03/2480530.html
總結(jié)
以上是生活随笔為你收集整理的URAL 1033 Labyrinth的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Handbook of Constrai
- 下一篇: java例程练习(布局管理器[FlowL