0分求助
查看原帖
0分求助
477464
cxq123456楼主2022/9/24 20:52
#include<bits/stdc++.h>
using namespace std;
int n,ans,k;
char a[102][102];
struct wa
{
	int x1,y1,x2,y2;
}w[100001];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=n;j++)
	        cin>>a[i][j]; 
	for(int i=1;i<=n-1;i++)
	    for(int j=1;j<=n-1;j++)
	   	    if(a[i][j]=='1'&&a[i+1][j]=='1'&&a[i][j+1]=='1'&&a[i+1][j+1]=='1') ans++;
	for(int i=1;i<=n;i++)
	    for(int j=1;j<=n;j++)
	    {
	    	if(a[i][j]=='1'&&a[i+1][j+1]=='1')
	    	{
	    		int x=i,y=j;
	    		while(a[++x][++y]=='1'&&x<=n&&y<=n);
	    		k++;
	    		w[k].x1=i;
	    		w[k].y1=j;
	    		w[k].x2=x-1;
	    		w[k].y2=y-1;
			}
			if(a[i][j]=='1'&&a[i+1][j-1]=='1')
	    	{
	    		int x=i,y=j;
	    		while(a[++x][--y]=='1'&&x<=n&&y>=1);
	    		k++;
	    		w[k].x1=i;
	    		w[k].y1=j;
	    		w[k].x2=x-1;
	    		w[k].y2=y+1;
			}
		}
	for(int i=1;i<=k;i++)
	    for(int j=i+1;j<=k;j++)
	    	if(abs(w[i].x1-w[j].x1)==abs(w[i].x2-w[j].x2)&&abs(w[i].y1-w[j].y1)==abs(w[i].y2-w[j].y2)&&abs(w[i].x1-w[j].x2)==abs(w[i].x1-w[j].x2)&&abs(w[i].y1-w[j].y2)==abs(w[i].y1-w[j].y2)) ans++;
    cout<<ans;
	return 0;
}
^^^
2022/9/24 20:52
加载中...