求hack数据
查看原帖
求hack数据
94939
取名太南楼主2021/5/1 19:42

显示是第39个数据错误。 https://www.luogu.com.cn/record/50164526

#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
typedef long long ll;
ll i,n,m,maxn;
map<ll,bool> F;
bool check(ll x){
	F[1]=0;
	for (i=1;i*i<=x;i++)
		if (x%i==0)
			if (F[i]|F[x/i])
				return 0;
	return 1;
}
int dfs(ll s,ll t,ll m){
	ll i,j,q=s;
	for (i=0;i<m&&t>i;i++) 	q=q*(t-i);
	if (q<=maxn) return 0;
	if (s>=maxn) maxn=s;
	if (m<1) return 0;
	for (i=t;i>=2;i--)
		if (check(i)){
			for (j=1;j*j<=i;j++)
				if (i%j==0) 
					F[j]=F[i/j]=1;
			if (!dfs(s*i,i-1,m-1)) return 1;
			for (j=1;j*j<=i;j++)
				if (i%j==0)
					F[j]=F[i/j]=0;
		}
	return 1;
} 
int main(){
	scanf("%lld",&n);m=3; 
	dfs(1,n,m);
	printf("%lld\n",maxn); 
	return 0;
}
2021/5/1 19:42
加载中...