MLE求助
  • 板块P2105 K皇后
  • 楼主Aresene
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/4/11 13:59
  • 上次更新2023/10/28 03:59:49
查看原帖
MLE求助
251157
Aresene楼主2022/4/11 13:59

感觉思路没错,咋就超了呢

#include <bits/stdc++.h>
#pragma GCC optimize(2) //甚至氧气
using namespace std;

int main(){
	int n,m,k;
	cin >> n >> m >> k;
	bool a[n][m];
	memset(a,0,sizeof(a));
	for(int i = 1;i <= k;i++){
		int tmp,tmp1;
		cin >> tmp >> tmp1;
		for(int i = 1;i <= n;i++){
			if(i <= n)a[i][tmp1] = 1;
			if(i <= m)a[tmp][i] = 1;
			if((tmp-i) >= 1 || (tmp1+i) <= m)a[tmp-i][tmp1+i] = 1; 
			if((tmp+i) <= n || (tmp1+i) <= m)a[tmp+i][tmp1+i] = 1;
			if((tmp+i) <= n || (tmp1-i) >= 1)a[tmp+i][tmp1-i] = 1;
			if((tmp-i) >= 1 || (tmp1-i) >= 1)a[tmp-i][tmp1-i] = 1; //把行列叉全部标点
		}
	}
	int sum = 0;
	for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){if(a[i][j] == 0){sum++;}}}
	cout << sum << endl; //sum计算值
	return 0;
}
2022/4/11 13:59
加载中...