1 条题解

  • 0
    @ 2022-10-27 21:07:18
    /*****************************************
    Note:
    ******************************************/
    #include <queue>
    #include <set>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    #define LL long long
    const int N = 1e6 + 10;
    const int INF = 0x3f3f3f3f;
    char a[10][10];
    int dx[8]={1,-1,0,0,-1,-1,1,1};
    int dy[8]={0,0,1,-1,1,-1,1,-1};
    int maxn=0;
    int find(int xx,int yy)
    {
    	int sum=0;
    	for(int i=0;i<8;++i)
    	{
    		int x=xx+dx[i];
    		int y=yy+dy[i];
    		if(x<1||x>8||y<1||y>8)
    			continue;
    		if(a[x][y]=='.'||a[x][y]=='B')
    			continue;
    		if(a[x][y]=='W')
    		{
    			int num=0;
    			while(x>0&&x<=8&&y>0&&y<=8&&a[x][y]=='W')
    			{
    				num++;
    				x+=dx[i],y+=dy[i];
    			}
    			if(x<=0||x>8||y<=0||y>8)
    				continue;
    			if(a[x][y]=='B')
    				sum+=num;
    		}
    	}
    	return sum;
    }
    int main()
    {
    	for(int i=1;i<=8;++i)
    		for(int j=1;j<=8;++j)
    			cin>>a[i][j];
    	for(int i=1;i<=8;++i)
    		for(int j=1;j<=8;++j)
    			if(a[i][j]=='.')
    				maxn=max(maxn,find(i,j));
    	cout<<maxn<<endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    2842
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    70
    已通过
    13
    上传者