⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1405 fire net.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
#include <cstdio> 
using namespace std; 
char map[4][4]; 
int n,max; 

inline bool isOK(int i,int j) 
{ 
    int k; 
     
    for(k=i;k<n;k++) 
        if(map[k][j]=='X') 
            break; 
        else if(map[k][j]!='.') 
            return false; 
    for(k=i;k>=0;k--) 
        if(map[k][j]=='X') 
            break; 
        else if(map[k][j]!='.') 
            return false; 
    for(k=j;k<n;k++) 
        if(map[i][k]=='X') 
            break; 
        else if(map[i][k]!='.') 
            return false; 
    for(k=j;k>=0;k--) 
        if(map[i][k]=='X') 
            break; 
        else if(map[i][k]!='.') 
            return false; 
    return true; 
} 
int dfs(int step) 
{ 
    int i,j,k; 
     
    max= step > max ? step:max; 
         
    for(i=0;i<n;i++) 
        for(j=0;j<n;j++) 
        { 
            if(map[i][j]=='.' && isOK(i,j)) 
            { 
                map[i][j]=step; 
                dfs(step+1); 
                map[i][j]='.'; 
            } 
        } 
    return max; 
} 

int main() 
{ 
    int i,j;
    char ch; 

    while(scanf("%d",&n)==1 && n!=0) 
    {
        getchar(); 
        for(i=0;i<n;i++) 
            gets(map[i]); 
        max=0; 
        dfs(0); 
        printf("%d\n",max); 
    } 
    return 0; 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -