hdu3368DFS

来源:互联网 发布:如何查看本机端口号 编辑:程序博客网 时间:2024/06/05 03:45
#include <iostream>#include <cstdio>using namespace std;char s[10][10];int dir[8][2]={{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1}};void dfs(int x,int y,int d,int num,int &sum){    if(d==8)    {        for(int i=0;i<8;i++)            dfs(x+dir[i][0],y+dir[i][1],i,num,sum);    }    else    {        if(s[x][y]=='*')    return;        if(s[x][y]=='D')    sum+=num;        if(s[x][y]=='L')    dfs(x+dir[d][0],y+dir[d][1],d,num+1,sum);    }}int solve(){   int sum,Max=0;   for(int i=0;i<8;i++)        for(int j=0;j<8;j++)        {            sum=0;            if(s[i][j]=='*'){            dfs(i,j,8,0,sum);            if(sum>Max) Max=sum;            }        }    return Max;}int main(){    int t,i,ans,cas=1;    scanf("%d",&t);    while(t--)    {        for(i=0;i<8;i++)            scanf("%s",s[i]);        ans=solve();        printf("Case %d: %d\n",cas++,ans);    }    return 0;}

 
原创粉丝点击