二分中计算空白卡牌是否够用
查看原帖
二分中计算空白卡牌是否够用
1025740
sususu2005楼主2024/5/17 19:32
// 如果卡牌有r套,返回值为手写的卡牌是否够用,不够返回false,够返回true 
bool f(int r){
	int tmp = m; // 临时记录空白卡牌的数量 
	for(int i = 1;i <= n;i++){
		/*
		注意:放这里是错误的 
		// 如果空白卡牌数量不够用,返回false 
		if(tmp < 0){
			return false;
		}
		*/
		// 如果该种卡牌的手写次数够 
		if(a[i] + b[i] >= r){
			tmp -= (r - a[i]) > 0?(r - a[i]) : 0;
		}
		// 该种卡牌的手写次数不够 
		else{
			return false;
		}
	}
	// 如果空白卡牌数量不够用,返回false 
	if(tmp < 0){
		return false;
	}
	return true;
}

为什么(tmp < 0)这个判断放在for循环外就可以,放在for循环内判断就过不了样例4,它的作用不是一样滴吗

2024/5/17 19:32
加载中...