求助代码85分,只有sub2一个点死活wa
查看原帖
求助代码85分,只有sub2一个点死活wa
782904
哈哈人生楼主2023/8/28 18:47

这是什么毒瘤数据,代码实在挑不出毛病了qwp。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,a[50000005],g=-1,s,ans=0;
bool b[50000005];
int fc(int x) {
	if(x==1)return 0;
	if(b[x]==1)return 1;
	int minn=1<<30;
	for(int i=2; i*i<=x; i++) {
		if(x%i==0){
			int xx=fc(i),yy=fc(x/i);
			if(xx==-1||yy==-1)continue;
			minn=min(minn,xx+yy);
		}
	}
	if(minn!=1<<30)return minn;
	else return -1;
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		cin>>a[i];
		if(g==-1)g=a[i];
		else g=__gcd(g,a[i]);
	}
	for(int i=1; i<=m; i++)cin>>s,b[s]=true;
	for(int i=1; i<=n; i++) {
		int j=fc(a[i]/g);
		if(j<0)cout<<-1,exit(0);
		else ans+=j;
	}
	cout<<ans;
	return 0;
}
2023/8/28 18:47
加载中...