其他分享
首页 > 其他分享> > solution-cf1187a

solution-cf1187a

作者:互联网

对于这道cf水题,我采取的方法是用数学上的最不利原则,尽可能的把最多的一种拿完后,再拿其他的。

根据容斥原理,只含棒子的蛋的数量=棒子数-两个物品都含的蛋的数量,只含玩具的也是同理。两个物品都含的蛋的数量=棒子数+玩具数-蛋数。

得到代码

int cnt = s + t - n;//cnt=两个物品都含的蛋

最终,我们只需要所有取只含棒子或玩具的蛋(哪种多取哪种),再把这个数量+1就是答案了。

代码:

#include<iostream>
using namespace std;
int main()
{
	int T;
	cin>>T;
	for(int i = 1; i <= T; i++;)
	{
		int n,s,t;
		cin>>n>>s>>t;//函数名与题面相同,不做解释
		int cnt = s + t - n;//cnt = 两个物品都含的蛋数
		cout<<max(s - cnt + 1, t - cnt + 1)<<endl;//比较
	}
	return 0;
}

标签:cnt,棒子,int,solution,玩具,cf1187a,只含,物品
来源: https://www.cnblogs.com/WRuperD/p/15703462.html