#include <iostream>
#include <vector>
using namespace std;
int main() {
// m行n列
int m, n;
cin >> m >> n;
// vector用于存储蛋糕
vector<vector<int>> v;
v.resize(m);
for(auto& e : v)
{
e.resize(n, 1);
}
// 进行判断
int count = 0;
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
if(v[i][j] == 1)
{
count++;
if(i+2 < m)
{
v[i+2][j] = 0;
}
if(j+2 < n)
{
v[i][j+2] = 0;
}
}
}
}
cout << count;
return 0;
}
// 64 位输出请用 printf("%lld")
注意:需要用到一点勾股定理的知识;
题目所说,两点(x,y)的算术平方根为2,也就是说算出来侧边的长度为2;
遍历vector,从(0,0)处开始,将右边(0+2)和下边(0+2)坐标值置为0,可以画下图大家就很明了



京公网安备 11010502036488号