では、ゲームを始めましょう
GO FOR IT !

然而我是用map的

首先,根据题意打暴力就行

然后有几个细节要注意

  1. 开 long long !!!

  2. 本来是sort 从大到小 或 从小到大都可以,

    然而 从大到小 的话,就要用 *s[i]k,这样会爆long long(开__int128也会爆qwq)

  3. 所以用从小到大,那么为了判段就必须写 s[i]/k,

    但是它没有整除会进1,然后就40了qwq,

    所以要用 s[i]%k || !mmp[s[i]/k] (意思是不能整除肯定就可以了,可以整除再判断)

见代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define res register int
const int MAXN=100000+10;
ll n,k,total,s[MAXN];
map<ll,bool> mmp;

int main(){
	cin>>n>>k;
	for(res i=1;i<=n;++i) cin>>s[i];
	sort(s+1,s+n+1);
	for(res i=1;i<=n;++i){
		if(!mmp[s[i]]&&(s[i]%k||!mmp[s[i]/k])) mmp[s[i]]=1,++total;
	}
	cout<<total;
	return 0;
}
总访问量 访问人数