关于dfs
查看原帖
关于dfs
246800
wocaicai楼主2020/9/11 22:20

rt 题解里的dfs是这样写的 link

for(int i=1;i<=n;i++)
    {
        if(vis[i]==0)
        {
            vis[i]=1;
            dfs(yi+a[i],er,sum-(yi+a[i]+er));
            dfs(yi,er+a[i],sum-(yi+er+a[i]));
            vis[i]=0;
            dfs(yi,er,sum-(yi+er));
        }
    }

按他的意思,实际上就是枚举这条边加在哪里 于是蒟蒻便写下了这样的代码 link

我的dfs是这样写的

for(int i = 1 ; i <= n ; i++){
		if(!vis[i]){
			vis[i] = 1 ; 
			dfs(x + a[i] , y , c) ; 
			dfs(x , y + a[i] , c) ; 
			dfs(x , y , c + a[i]) ; 
			vis[i] = 0 ; 
		}
	}

然而这样只有27分,所以请问有什么不一样吗

orz 望大佬求助

2020/9/11 22:20
加载中...