最后一个添加的数据第二个数据点WA求查
查看原帖
最后一个添加的数据第二个数据点WA求查
925752
zhangzihan2029楼主2023/5/10 22:05

大致思路是求出倍数,标记数组,确保不TLE 感觉基本都考虑到了,求大佬救蒟蒻。

#include<bits/stdc++.h>
using namespace std;
int k[300005],l[300005],n,m,x;
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++){
		cin>>x;
		k[x]++;
	}
	for(int i=1;i<=3e5;i++)if(k[i]){
		if(k[i]>=2)l[1]++;
		if(k[1])l[i]++;
		for(int j=1;j<=sqrt(i);j++)if(i%j==0){
			if(k[i/j])l[j]++;
			if(k[j])l[i/j]++;
		}
	}
	for(int i=0;i<m;i++){
		cin>>x;
		if(l[x])cout<<"YES\n";
		else cout<<"NO\n";
	}
}
2023/5/10 22:05
加载中...