题解 CF1187A 【Stickers and Toys】

对于这道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;
}
posted @ 2020-06-10 23:48  WRuperD  阅读(1)  评论(0编辑  收藏  举报  来源

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

这是一条自定义内容

这是一条自定义内容