牛牛的导弹系统

题解

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;
    }
};
全部评论

相关推荐

10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧
点赞 评论 收藏
分享
安静的鲸鱼offer...:神仙级别hr,可遇不可求,甚至他可能也是突然有感而发。只能说遇上是件幸事。
秋招开始捡漏了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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