联考20200607 T1 随机除法

题目:
联考20200607 T1 随机除法_第1张图片
联考20200607 T1 随机除法_第2张图片
联考20200607 T1 随机除法_第3张图片

分析:
啊,范围是\(1e24\),出题人身体健康冚家富贵嗷
不敢用__int128,手写高精度(
考虑\(N=\prod_{i=1}^{m}p_i^{k_i}\)
不难发现最后的答案只与\(k\)有关,尝试期望\(dp\)

前缀和优化一下
状态\(K\)由状态\(K'\)转来,\(K\)\(K'\)只有一位差距1
我们暴力搜索最大的状态,明显是由最小的质数构成,且\(N\)最多只会有20个质因数
两个状态如果排序后相同,这两个状态的值就会相同(每一位等价)
直接将搜索出来的状态哈希或者直接加入map查询
然后就暴力预处理所有状态了
复杂度玄学,不过爆搜出的状态数级别是\(1e5\),预处理卡着时间过(

#include
#include
#include
#include
#include
#include
#include
#include
#include

#define maxn 200005
#define K 20
#define MOD 1000000007
#define maxm 105

using namespace std;

const long long D=1000000ll*1000000ll;

inline long long getint()
{
	long long num=0,flag=1;char c;
	while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;
	while(c>='0'&&c<='9')num=num*10+c-48,c=getchar();
	return num*flag;
}

mapM;
int ans[maxn],sum[maxn][21];
int cnt,tot,pri[maxm],f[maxm];
char s[maxm];
inline bool cmp(int x,int y){return x>y;}
inline int upd(int x){return x >p[maxn];
vectord;

inline int ksm(int num,int k)
{
	int ret=1;
	for(;k;k>>=1,num=1ll*num*num%MOD)if(k&1)ret=1ll*ret*num%MOD;
	return ret;
}
inline int solve(vectora,int p)
{
	while(pa)
{
	sort(a.begin()+1,a.end(),cmp);
	int ans=0;
	for(int i=0,sz=a.size();i100)break;
			f[tmp]=pri[j];
		}
	}
}

inline void work(BIGNUM now,int pos,int x)
{
	p[++cnt]=make_pair(now,d);
	for(int i=1;i<=x&&now*pri[pos]<=N;i++)
		now=now*pri[pos],d[pos]=i,work(now,pos+1,i),d[pos]=0;
}

int main()
{
	init(),N.getnum(1);
	for(int i=1;i<=24;i++)N=N*10;
	d.resize(K);
	BIGNUM num;num.getnum(1);
	work(num,1,100);
	sort(p+1,p+cnt+1);
	for(int i=1;i<=cnt;i++)
	{
		long long val=0;
		for(int j=0,sz=p[i].second.size();j=0;j--)
		{
			sum[i][j]=sum[i][j+1];
			if(p[i].second[j])
			{
				vectortmp=p[i].second;tmp[j]--;
				sum[i][j]=upd(sum[i][j]+sum[solve(tmp,j)][j]);
			}
		}
		int tmp=1;
		for(int j=0,sz=p[i].second.size();ja;
		a.resize(1);
		for(int i=1;i<=m;i++)
		{
			int x=getint(),cnt=0;
			while(n%x==0)cnt++,n=n/x;
			a.push_back(cnt);
		}
		a.resize(K);
		printf("%d\n",ans[getans(a)]);
	}
}

联考20200607 T1 随机除法_第4张图片

你可能感兴趣的:(联考20200607 T1 随机除法)