POJ 1231(简单搜索)
Posted newstartcy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1231(简单搜索)相关的知识,希望对你有一定的参考价值。
没什么意思,注意下细节
//#include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<cstring> #define inf (0x3f3f3f3f) using namespace std; const int maxn = 16; char Grape[maxn][maxn]; bool vis[maxn]; int n,k,ans; void dfs(int row,int num) if(num==k) ++ans; return; if(row>n) return; for(int i=1;i<=n;++i) if(Grape[row][i]==‘#‘&&!vis[i]) //对于每一个地图的未访问过节点 vis[i] = true; dfs(row+1,num+1); vis[i] = false; dfs(row+1,num);//(SB了,不放旗子时是不需要有位置可以的)拿出循环外,找了n久,一直TLE int main() ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); while(cin>>n>>k) if(n==-1) break; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) cin>>Grape[i][j]; memset(vis,false,sizeof(vis));//每一列 ans = 0; dfs(1,0); cout<<ans<<‘\n‘;
以上是关于POJ 1231(简单搜索)的主要内容,如果未能解决你的问题,请参考以下文章