社区讨论
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 条回复,欢迎继续交流。
正在加载回复...