目录
[牛客WY16 不要二](#牛客WY16 不要二)
牛客WY16 不要二
解析代码
用贪心的思想来做,开始将棋盘map全置为1,1代表放入蛋糕。
从左向右从上到下遍历棋盘开始依此放蛋糕,然后将该块蛋糕上下左右欧几里得距离为2的点全部标记为0,意思为该点不能再放入蛋糕,如果下一步扫到的0,则跳过该点,如果扫到1,则计数器cnt++,继续把周围距离为2的点标记为0。扫完棋盘就AC了。
cpp
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int w = 0, h = 0, cnt = 0;
cin >> w >> h;
//cin >> h >> w;
vector<vector<int>> arr(w, vector<int>(h, 1));
for (int i = 0; i < w; ++i)
{
for (int j = 0; j < h; ++j)
{
if (arr[i][j] == 1)
{
if (i + 2 < w)
arr[i + 2][j] = 0;
if (j + 2 < h)
arr[i][j + 2] = 0;
cnt++;
}
}
}
cout << cnt;
return 0;
}