牛牛的导弹系统
题解
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; } };