其他分享
首页 > 其他分享> > POJ1321

POJ1321

作者:互联网

简单搜索,DPS基础题

#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;

char map[20][20];
int visit[20];
int n,k;
int ans;
DPS(int x,int y){
    if(y >= k){ans++;return 0;}//若超出范围立刻方案书+1,并层层返回,继续DPS找新方案
    for(int i = x;i < n;i++)
        for(int j = 0;j < n;j++)
    if(!visit[j] && map[i][j] =='#'){
        visit[j] = true;
        DPS(x + 1,y + 1);
        visit[j] = false;
    }
return 0;
}



int main()
{
    while(cin>>n>>k){
       if(n == -1 && k == -1)break;
       memset(visit,false,sizeof(visit));
       memset(map,false,sizeof(map));
       for(int i = 0;i < n;i++)cin>>map[i];
       ans = 0;
       DPS(0,0);
       cout<<ans;

    }
}

标签:map,DPS,int,POJ1321,visit,++,ans
来源: https://blog.csdn.net/qq_42937838/article/details/100146515