题解 | #不要二#

不要二

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,可以画下图大家就很明了

全部评论

相关推荐

点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务