求dfs优化方法 9,11,12测试点超时
查看原帖
求dfs优化方法 9,11,12测试点超时
1441887
e666楼主2025/1/21 11:48
#include<bits/stdc++.h>
using namespace std;
long long kg[20],total[1000000],a[1000000],ans,dz[7]={0,1,2,3,5,10,20};
void dfs(int x,int cnt){
	total[cnt]++;
	if(total[cnt]==1)
		ans++;
	if(x==7) return;
	for(int i=0;i<=kg[x];i++){
		a[x]=i;
		dfs(x+1,cnt+a[x]*dz[x]);
	}
	return;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	for(int i=1;i<=6;i++)
		cin>>kg[i];	
	dfs(1,0);
	cout<<"Total="<<ans-1;
	return 0;
}
2025/1/21 11:48
加载中...