萌新求助,代码太慢咋办
查看原帖
萌新求助,代码太慢咋办
65681
UltiMadow楼主2020/5/3 11:08

RT,别人的程序跑的飞快,窝的要开O2才过,是我写假了么/kel

int dfs(int len,int sum,int now,int mo,bool sma)
{
	if(!len)return sum==mo&&!now;
	if(f[len][sum][now]!=-1&&sma)return f[len][sum][now];
	int lmt=sma?9:num[len],ret=0;
	for(int i=0;i<=lmt;i++)
		ret+=dfs(len-1,sum+i,(now*10+i)%mo,mo,sma||(i<lmt));
	if(sma)f[len][sum][now]=ret;
	return ret;
}
int solve(int x)
{
	int cnt=0,ret=0;
	while(x){num[++cnt]=x%10;x/=10;}
	for(int i=1;i<=cnt*9;i++)
		memset(f,-1,sizeof(f)),ret+=dfs(cnt,0,0,i,0);
	return ret;
}

我前面define int long long了,没有ll的问题(

不要无意义回复,求大佬帮忙看看,蟹蟹qwq

2020/5/3 11:08
加载中...