题解 P1978 【集合】

· · 题解

很棒的是有一种叫set的数据结构,还是stl里面的,真的是太好了

问大佬怎么用set又自己查了一点资料就可以用咯!

照着题目暴力一下,完成!

不过是不是老用stl不太好呀……

#include<iostream>
#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
long long a[100005];
set<long long> A;
int n,k;
int main(){
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++){
        if(a[i]%k||A.find(a[i]/k)==A.end()){//如果不能整除k或者集合中没有a[i]/k,满足条件就进入集合
            A.insert(a[i]);
        }
    }
    printf("%d\n",A.size());
    return 0;
}