牛牛的导弹系统

题解

tag:贪心+模拟
1、我们不难发现第一天我们肯定要部署M个导弹系统
2、假设我们第一天部署了M个导弹系统,在第A+1天的时候发现没有可以发射的导弹系统,那么意味着我们需要在2--A这几天中至少要部署一个导弹系统。
3、那么根据贪心的思想我们会发现在第A天部署一个导弹系统,在第A+1天再部署M-1个导弹系统即是最优的策略
4、同时我们不难发现到(1--A+B)和(A+B+1---2A+2B)是等效的,它们是循环的
5、于是我们只需要处理1--A+B这几天的导弹系统部署情况即可

class Solution {
public:
    /**
     * 
     * @param A int整型 可以连续发射A天
     * @param B int整型 需要连续冷却B天
     * @param M int整型 每天至少需要发射M粒导弹
     * @return int整型
     */

    int solve(int A, int B, int M) {
        // write code here
        int ch[3000005];
        int cnt=0;
        ch[1]=M;
        for(int i=A;i<(1+A+B);i+=(A-1)){
            ch[i]++;
            ch[i+1]+=M-1;
            if(M>1)i++;
                //cout<<"    "<<i<<endl;
        }
        for(int i=1;i<(1+A+B);i++)
        {
            cnt+=ch[i];
        }
        return cnt;
    }
};
全部评论

相关推荐

08-01 19:22
已编辑
前台
点赞 评论 收藏
分享
星期一的大老师:项目描述 和 技术栈单开一栏;八股文:算法与数据结构,计算机网络一定要写,操作系统不了解可以不写;Linux命令,Git,Docker基础命令和基本使用一定要写,要有实际使用场景的解决经验;项目的八股文上:redis 解决 缓存雪崩,缓存击穿,缓存穿透的解决方案,一个问题的不同方案可以一起用,不需要重复在两个项目写。第二个项目换一个。小厂可以投一投
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务