• 嵊州D3T1 山魔 烙饼问题


    嵊州D3T1

    山魔

    有n 座山,每座山有南北两面。

    每一天,一些山的某一面(不一定相同) 会受到山魔的袭击。

    但是山魔一天最多只会袭击k座山。

    当每座山的每一面都被袭击过后,山魔就会离开。

    那么至少要经过多少天,山魔会消失?

    Input

    一行两个正整数n, k。

    Output

    一个整数,表示答案。

    Examples

    devil.in devil.out 
     3 2  3

    Notes

    对于所有数据,满足1 ≤ n, k ≤ 10。

    Task1[10%]

    k = 1

    Task2[50%]

    k ≤ 4

    Task3[100%]

    无特殊限制


    Sovle!

    这道题,又是改编的题目

    原型是烙饼问题:

    有n个饼,k个锅,一次只能烤一面

    问:至少要烤几次?

    小学奥数嘛。。。

    Solve!

    首先就是特判:

    当锅比饼都要多时,肯定只用烤两次嘛(正面一次反面一次)

    锅饼相同时,也是这样的

    所以:

    if(n<=k) {

    cout<<"2";

    return 0;

    }

    再看看正常情况:

    随便选了几个数算了下

    发现了普遍规律:

    如果n的两倍可以被k整除

    就直接输出商加一

    如果不能被整除

    就输出商(int向下取整)

    #include<cstdio>
    using namespace std;
    int main()
    {
        freopen("devil.in", "r", stdin);
        freopen("devil.out", "w", stdout);
        int n, k;
        scanf("%d%d", &n, &k);
        if (k>=n) puts("2"); 
        else 
            if (2*n%k) printf("%d
    ", 2 * n / k + 1);
            else printf("%d
    ", 2 * n / k);
        return 0;
    }

    OK!

  • 相关阅读:
    合并两个有序数组
    删除排序数组中的重复项 II
    对称二叉树
    相同的树
    二叉树的最大深度
    从前序与中序遍历序列构造二叉树
    vue简单案例_动态添加删除用户数据
    对vue的初步学习(一)
    关于java for循环常见练习题
    关于java中循环的学习
  • 原文地址:https://www.cnblogs.com/send-off-a-friend/p/11181011.html
Copyright © 2020-2023  润新知