zoukankan      html  css  js  c++  java
  • POJ 1321 棋盘问题 (DFS)

    POJ 1321 棋盘问题 (DFS)

    先直接贴代码

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    
    using namespace std;
    
    char p[10][10];
    bool vis[10];
    int ans;
    int n, k;
    
    void dfs(int line, int num)
    {
    	if(num == k)
    	{
    		ans++;
    		return;
    	}
    	if(line >= n)	return;
    	for(int i = 0 ; i < n ; i++)
    	{
    		if(p[line][i] == '#' && vis[i])
    		{
    			vis[i] = false;
    			dfs(line+1,num+1);
    			vis[i] = true;
    		}
    	}
    	dfs(line+1,num);
    }
    int main()
    {
        while(1)
        {
        	scanf("%d%d",&n,&k);
            if(n==-1&&k==-1)	return 0;
            for(int i = 0 ; i < n ; i++)
    	        for(int j = 0 ; j < n ; j++)
    	            cin >> p[i][j];//scanf("%c",&p[i][j]);Why???
            ans = 0;
            memset(vis, true, sizeof(vis));
            dfs(0, 0);
            cout << ans << endl;
        }
        return 0;
    }
    透过泪水看到希望
  • 相关阅读:
    面经-新浪
    面经-中兴
    面经-趋势科技
    面经-酷家乐
    面经-大华
    面经-明略科技
    面经-小米
    面经-虹软
    coroutine
    Coroutine 终止协程和异常处理
  • 原文地址:https://www.cnblogs.com/ronnielee/p/9495150.html
Copyright © 2011-2022 走看看