每日一练----1.22 oj总结

Posted 赏一杯茶:

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一练----1.22 oj总结相关的知识,希望对你有一定的参考价值。

选择题:
执行下面语句后的输出为

int I=1;
if(I<=0)
printf("****\\n") ;
else
printf("%%%%\\n");

考察转义字符,最后打印为“%%”。

编程题:

【不要二】二货小易有一个W*H的网格盒子,网格的行编号为0H-1,网格的列编号为0W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。

输入描述:

每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)

输出描述

输出一个最多可以放的蛋糕数

输入:3 2
输出:4

思路:创建二维数组一个一个进行遍历,符合条件则放置蛋糕,不符合条件则跳过。

#include <iostream>
#include <vector>
using namespace std;
int main()
    int m,n;
    int ret = 0;
    cin>>m;
    cin>>n;
    vector<vector<int>> v;
    v.resize(m);
    for(auto& e:v)
        e.resize(n,0);
    
    for(int i = 0; i<m;++i)
        for(int j = 0;j<n;++j)
            //判断上方和左方即可
            if(j - 2 >= 0 && v[i][j-2] == 1)
                v[i][j] = 0;
            
            else if(i - 2 >= 0 && v[i-2][j] == 1)
                v[i][j] = 0;
            
            else
                v[i][j] = 1;
                ++ret;
            
        
    
    printf("%d\\n",ret);
    
    
    return 0;

以上是关于每日一练----1.22 oj总结的主要内容,如果未能解决你的问题,请参考以下文章

每日一练----1.22 oj总结

每日一练----1.18 oj总结

每日一练----1.18 oj总结

每日一练----1.21 oj总结

每日一练----1.19 oj总结

每日一练----1.19 oj总结