一个非常有意思的问题
查看原帖
一个非常有意思的问题
560128
LangQi99楼主2022/11/24 17:13

记忆化

ll dfsbug(ll p,ll x,ll cnt){
	if(f[p][x]<1e15)return f[p][x];//如果我把它注释了 程序就是对的朴素暴力
	if(p==n)return (get1(x)<=k)?f[p][x]=cnt:0;
	ll res=0;
	up(0,m,i){
		res+=dfsbug(p+1,x+(1<<i),cnt*v[i]%mod)%mod;
		res%=mod;
	}
	return f[p][x]=res;
}
ll dfs(ll p,ll x)//std 记忆化
{	
	if(f[p][x]<1e15)return f[p][x];
	if(p==n)return f[p][x]=(get1(x)<=k);
	ll res=0;
	up(0,m,i){
		res+=dfs(p+1,x+(1<<i))*v[i]%mod;
		res%=mod;
	}
	return f[p][x]=res;
}

想问一下std的f数组是什么含义

dfsbug的f数组又是什么意思 为什么不能记忆

2022/11/24 17:13
加载中...