ZOJ-2100

来源:互联网 发布:linux如何更改ftp目录 编辑:程序博客网 时间:2024/06/06 02:55

题意就是是否存在一条路把所有地的种子播完,直接DFS+回溯搜

#include<stdio.h>static int n, m, seeds, find;static char s[6][6];void dfs2100(int depth, int row, int col){    if (depth == seeds)        find = 1;    if (find)        return;    if (s[row][col] == '.')    {        s[row][col] = 'S';        if (row - 1 >= 0)            dfs2100(depth + 1, row - 1, col);        if (row + 1 < n)            dfs2100(depth + 1, row + 1, col);        if (col - 1 >= 0)            dfs2100(depth + 1, row, col - 1);        if (col + 1 < m)            dfs2100(depth + 1, row, col + 1);        s[row][col] = '.';    }}int main(){    while (scanf("%d %d", &n, &m), n && m)    {        getchar();        int i, j, stones = 0;        for (i = 0; i < n; i++)        {            for (j = 0; j < m; j++)            {                s[i][j] = getchar();                if (s[i][j] == 'S')                    stones++;            }            getchar();        }        seeds = n * m - stones;        find = 0;        dfs2100(0, 0, 0);        printf(find ? "YES\n" : "NO\n");    }    return 0;}


0 0
原创粉丝点击