CF1592A Gamer Hemose 题解

题目传送门
题目大意:有一只怪物,血量为 \(H\),现在你有 \(n\) 中武器,第 \(i\) 种可以让怪物的血量下降 \(a_i\),每种武器不能连续使用,请问至少需要用几次武器才能打死这只怪物。
解析:显然我们发现,由于每种武器都不能连续使用,所以我们就使用能让怪物血量下降最大的两种武器交替使用。当然有的时候需要偶数次,有的时候需要奇数次,需要取最小值。
代码:(为了方便仅展示主函数)

int main(){
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
	T=read(); while(T--){
		n=read(); h=read(); maxx=maxy=-1;
		for(RI i=1;i<=n;i++){
			x=read();
			if(x>maxx) maxy=maxx,maxx=x;
			else if(x>maxy) maxy=x;
		}
		printf("%d\n",min((int)ceil(h*1.0/(maxx+maxy))*2,1+(int)ceil((h-maxx)*1.0/(maxx+maxy))*2));
	}
	return 0;
}
posted @ 2021-10-05 11:14  jiangtaizhe001  阅读(77)  评论(0编辑  收藏  举报