• 还有这个题


    链接:https://ac.nowcoder.com/acm/evaluate/5032/A
    来源:牛客网

    题目描述

    牛牛喜欢玩游戏,今天他买了一个新游戏。在游戏开始的时候,屏幕上出现一个大小为S的史莱姆。
    牛牛手里有一把剑,这把剑一次可以将一个大小为z的史莱姆砍成两个大小为x和y的史莱姆,其中x+y=z,其中x,y,z必须是都是正整数,所以z一定是大于1的。
    每次将史莱姆砍成x和y两半的时候,牛牛可以获得x*y个金币,现在他想知道他最少砍多少次可以获得至少M个金币。如果他无法完成,则返回-1.

    输入描述:

    输入包括两行。
    第一行输入正整数S,表示最初史莱姆的大小。
    第一行输入正整数M,表示需要获得的最少金币数。

    输出描述:

    输出一个整数表示最少砍多少次可以获得M个金币,如果他无法完成,则返回-1.

    示例1

    输入

    3
    2

    输出

    1

    说明

    有一个大小为3的史莱姆,牛牛需要获得2个金币。所以牛牛只需要将史莱姆砍成两个大小分别是1和2的史莱姆,就可以获得2个金币了。

    示例2

    输入

    3
    3

    输出

    2

    说明

    最初状态和第一个样例一样,但牛牛需要获得3个金币。
    牛牛将史莱姆分成大小1和2的两个史莱姆,获得两个金币,其中大小为1的史莱姆不能继续分割了,所以他需要将大小为2的史莱姆砍成大小1和1的史莱姆,获得一个金币,总共获得三个金币。

    示例3

    输入

    3
    4

    输出

    -1

    说明

    在样例2中将大小为3的史莱姆砍成三个大小为1的史莱姆获得了三个金币,不能再继续分割史莱姆获得金币。

    示例4

    输入

    765
    271828

    输出

    14

    备注:

    (2leq Sleq 1000)
    (1leq M leq 1000000000)

  • 相关阅读:
    后渗透
    Msf小结
    安全狗文件绕过
    文件上传漏洞
    SQL Injection(Blind)
    SQL Injection
    Linux 基础整理
    Python pip升级及升级失败解决方案
    文件包含
    信息收集
  • 原文地址:https://www.cnblogs.com/skkyk/p/14051654.html
Copyright © 2020-2023  润新知