k皇后
查看原帖
k皇后
1075140
违规用户名U1075140楼主2023/10/11 20:41

传送门

#include<bits/stdc++.h>
using namespace std;int n,m,k;
int main ()
{
	cin>>n>>m>>k;
	int hh[k][2],tot=0;
	bool qwq[n][m]={0};
	for(int i=0;i<k;i++)
	{
		cin>>hh[i][0]>>hh[i][1];
		qwq[hh[i][0]][hh[i][1]]=1;
		for(int j=0;j<n;j++)
		{
			if(qwq[j][hh[i][1]]==0)
			{
				qwq[j][hh[i][1]]=1;
			}
		}
		for(int j=0;j<m;j++)
		{
			if(qwq[hh[i][0]][j]==0)
			{
			qwq[hh[i][0]][j]=1;
			}
		}//行列 
		for(int j=0;j<min(n,m);j++)
		{
			if(hh[i][0]+j<n&&hh[i][0]+j<m)
			{
				if(qwq[hh[i][0]+j][hh[i][1]+j]==0)
				{
					qwq[hh[i][0]+j][hh[i][1]+j]=1;
				}
			}
			else break;
		}//++
		for(int j=0;j<min(n,m);j++)
		{
			if(hh[i][0]-j>0&&hh[i][0]-j>0)
			{
				if(qwq[hh[i][0]-j][hh[i][1]-j]==0)
				{
					qwq[hh[i][0]-j][hh[i][1]-j]=1;
				}
			}
			else break;
		}//--
		for(int j=0;j<min(n,m);j++)
		{
			if(hh[i][0]+j<n&&hh[i][0]-j>0)
			{
				if(qwq[hh[i][0]+j][hh[i][1]-j]==0)
				{
					qwq[hh[i][0]+j][hh[i][1]-j]=1;
				}
			}
			else break;
		}//+-
		for(int j=0;j<min(n,m);j++)
		{
			if(hh[i][0]-j>0&&hh[i][0]+j<m)
			{
				if(qwq[hh[i][0]-j][hh[i][1]+j]==0)
				{
					qwq[hh[i][0]-j][hh[i][1]+j]=1;
				}
			}
			else break;
		}//-+
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(qwq[i][j]==0)
			{
				tot++;
			}
		}
	}
	cout<<tot;
}
2023/10/11 20:41
加载中...