社区讨论

WA求助!

P1789【Mc生存】插火把参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo7gm5ae
此快照首次捕获于
2023/10/27 01:29
2 年前
此快照最后确认于
2023/10/27 01:29
2 年前
查看原帖
自己写了一遍暴力过了,然后看题解里大佬的思路由写了一遍,但是没过,不知道哪里写错了,请大佬们帮忙看看
代码:
CPP
#include <iostream>
#include <cmath>
using namespace std;

int n, m, k, a[102][102], cnt;

int cb(int x, int y)
{
	if (x < 1 || y < 1 || x > n || y > n)
		return 0;
	return 1;
}

int main()
{
	cin >> n >> m >> k;
	for (int i = 1; i <= m + k; i++)  // 这里其实可以把火把和萤石放到一起
	{
		int x, y;
		cin >> x >> y;
		for (int j = -2; j <= 2; j++)
		{
			for (int k = -2; k <= 2; k++)
			{
				if ((i > m || abs(j) + abs(k) <= 2) && cb(x + j, y + j))  // 如果是萤石(i > m)或者 j + k 的绝对值不超过 2,就把该格变为 1
					a[x + j][y + j] = 1;
			}
		}
	}
	
	for (int i = 1; i <= n; i++)
	    for (int j = 1; j <= n; j++) if (a[i][j] == 0) cnt++;  // 统计没被点亮的方格数
	    
	cout << cnt << endl;
	
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...