20 求助
查看原帖
20 求助
361141
_JF_殉情楼主2022/9/25 09:18
#include <bits/stdc++.h>
using namespace std;
const int N =700;
int n,a[N][N],sum;
bool check(int l,int r,int s,int t)
{
	bool flag=false;
	int f1=0,f2=0,l1=0,l2=0;
	while(l<=n&&r<=n&&s<=n&&t>=1)
	{
		if(a[l][r]==0||a[s][t]==0)
			break;
		if(l>=s&&r>=t)
			flag=true;
		if(l==s&&r==t)
		{
			flag=true;
			l++,r++,s++,t--;
			continue;
		}
		if(flag==true)
		{
			if(a[l][r]==1)
				f1++;
			if(a[s][t]==1)
				f2++;
		}
		else
		{
			if(a[l][r]==1)
				l1++;
			if(a[s][t]==1)
				l2++;
		}
		l++,r++,s++,t--;
	}
	if(f1==l1&&f2==l2)
		return true;
	else
		return false;
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		string s;
		cin>>s;
		int p=1;
		for(int j=0;j<s.length();j++)
		{
			int now=s[j]-48;
			a[i][p]=now;
			p++;
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(a[i][j]==0)
				continue;
			else
			{
				for(int k=j+1;k<=n;k++)
					if(a[i][k]==1&&check(i,j,i,k))
						sum++;	
			}	
		}	
	}	
	cout<<sum<<endl;
} 
2022/9/25 09:18
加载中...