这是T1?
查看原帖
这是T1?
723198
AAA404楼主2022/9/24 14:24

我从没见过这么难的T1,求调

#include<bits/stdc++.h>
#define itn int
#define tin int
#define nit int
#define tni int
#define nti int
#define scnaf scanf
#define ptrinf printf
#define icn cin
#define cni cin
#define inc cin
#define nci cin
#define nic cin
#define cuot cout
#define ocut cout
#define fro for
using namespace std;
int n,ans;
char a[101][101];
void sear(itn x,int y,bool state)
{
	int nx=x,ny=y,cnt1=0,cnt2=0;
	if(state)
	{
		x++,y++;
		while(a[x][y]=='1' && x<=n && y<=n && x>=1 && y>=1)
		{
			x++,y++,cnt1++;
		}
		x--,y--;
		ny=y;
		while(a[nx][ny]=='1' && nx>=1 && ny>=1 && nx<=n && ny<=n)
		{
			nx++,ny--,cnt2++;
		}
		nx--,ny++;
		if(cnt1==cnt2-1 && (nx!=x && ny==y || nx==x && ny!=y))ans++;
	}
	else
	{
		x++,y--;
		while(a[x][y]=='1' && x<=n && y<=n && x>=1 && y>=1)
		{
			x++,y--,cnt1++;
		}
		x--,y++;
		ny=y;
		while(a[nx][ny]=='1' && nx>=1 && ny>=1 && nx<=n && ny<=n)
		{
			nx++,ny++,cnt2++;
		}
		nx--,ny--;
		if(cnt1==cnt2-1 && (nx!=x && ny==y || nx==x && ny!=y))ans++;
	}
}
int main()
{
 //	freopen(".in","r",stdin);
 //	freopen(".out","w",stdout);
 	cin>>n;
 	fro(tin i=1;i<=n;i++)
 	cin>>a[i]+1;
 	fro(itn i=1;i<=n;i++)
 	{
 		fro(tin j=1;j<=n;j++)
 		{
 			if(a[i][j]=='1')
 			{
 				sear(i,j,1);
 				sear(i,j,0);
			}
		}
	}
	cout<<ans;
 	return 0;
}

2022/9/24 14:24
加载中...