题解 P6153 【询问】

· · 题解

原题传送门。

比赛的时候做到崩溃,一直怎么也弄不过去,完全懵了。

随后我抱着试一下的心态写出了以下代码:

#include<bits/stdc++.h>//万能头文件好
using namespace std;//这不能少
#define ll long long//个人习惯,可以少打几个字
int main(){
    ll n,m;//定义
    scanf("%lld%lld",&n,&m);//输入
    printf("%lld",n-m);//输出
    return 0;//over.
}

竟然对了!小心脏差点受不了

我们现在来正经分析一下:

因为 zbw 特别赶时间,所以他保证每次给出的条件都是有用的,也就是说,每次给出的条件无法由之前的条件推导得来。

也就是说,在没有给出条件时,我们是不知道哪些物体和哪些物体不相同的。那么一开始是有 n 种不同的物体的。

随后,题目每给出一个条件,就会有两个物体相同(配对起来)。

那么,想要求出有多少种不同的物品就很简单了:只需要把物体总数 n 减去条件数(也就是配对起来的物体组数) m 即可。

还是比较简单的把。

分析完毕,撒花~