感觉思路都对,但是WA
查看原帖
感觉思路都对,但是WA
1051460
jasonlixuran楼主2024/10/7 12:14
//公式:对角线:列+行-1
//反对角线:8-行+列 
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int sum=0;
bool line[100010],dg[100010],udg[100010],row[100010];//line列,dg对角线,udg反对角线,row行 
int main()
{
	cin>>n>>m>>k;//n为行,m为列, k为次数 
	for(int i = 0; i<k; i++)
	{
		int x,y;
		cin>>x>>y;//x为行,y为列 
		line[y]=dg[y+x-1]=udg[m-y+x]=row[x]=1;//占用 
	}
	for(int i = 0; i<n; i++)//i行 
	{
		for(int j = 0; j<m; j++)//j列 
		{
			if(!line[j]&&!dg[j+i-1]&&!udg[m-j+i]&&!row[i])//未被占用 
			{
				sum++;//计数 
			}
		}
	}
	cout<<sum;//输出 
	return 0;
 } 

大佬求调

2024/10/7 12:14
加载中...