牛牛的导弹系统

题解

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

相关推荐

巧克力1:双选会不如教室宣讲会
点赞 评论 收藏
分享
10-31 14:54
已编辑
门头沟学院 算法工程师
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务