zoukankan      html  css  js  c++  java
  • dfs1321

    比较抽象吧,看到题时一点思想也没有,参考了别人的代码才知道。。。渣渣

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    using namespace std;
    int map[10][10];
    int v[10];//作用重大
    int n,k,num;
    void dfs(int r,int ans)
    {
        if(ans==k)
        {
            num++;
            return ;
        }
        if(r>n) return ;
        for(int i=1;i<=n;i++)
        {
            if(map[r][i]&&!v[i])
            {
                v[i]=1;
                dfs(r+1,ans+1);
                v[i]=0;
            }
        }
        dfs(r+1,ans);\出现空白行时

        return ;
    }
    int main()
    {
        char c;
        while(scanf("%d%d",&n,&k)!=EOF)
        {
            num=0;
            if(n==-1&&k==-1) break;
            getchar();
            memset(map,0,sizeof(map));
            memset(v,0,sizeof(v));
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=n;j++)
                {
                     scanf("%c",&c);
                     if(c=='#')
                        map[i][j]=1;
                }
                getchar();
            }
            dfs(1,0);
            printf("%d ",num);
        }
        return 0;
    }

  • 相关阅读:
    构建之法阅读笔记01
    最长英语单词链
    第十五周学习总结
    寻找“水王”
    Happy Necklace HDU
    Bi-shoe and Phi-shoe LightOJ
    The Embarrassed Cryptographer POJ
    Big Number HDU
    矩阵乘法模板C/C++
    Baby Step,Giant Step算法模板
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/3785911.html
Copyright © 2011-2022 走看看