牛牛的导弹系统

题解

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

相关推荐

人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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