题解 | #不要二#
不要二
https://www.nowcoder.com/practice/1183548cd48446b38da501e58d5944eb?tpId=122&tqId=33662&ru=/exam/oj
#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,可以画下图大家就很明了