关于本题最优性剪枝
查看原帖
关于本题最优性剪枝
231946
CuSO4_and_5H2O楼主2022/11/2 20:04

本体貌似不能最优性剪枝,经过一下午的对拍,拍出了下边的数据:

 10 12 1 
1000000000000000000 1000000000000000000 6 1000000000000000000 1 1 1 1 1 
1 4 
6 1 
7 1 
2 6 
2 8
3 5
4 5
3 9
3 7
10 2
5 9
5 10

在这个数据中(应该和洛谷#5测试点相似),有的人的最优性剪枝对了,有的人的错了,我看了看,错的是链式前向星存图的面对的是vector存的,两个的顺序就是枚举顺序(前者先建的边后枚举,后者反之),所以我把vector代码的枚举顺序变成了这样:

 for(auto i=v[x].end()-1;;i--){
        if(!vs[*i])dfs(*i,l+1,w+va[*i]);
    	if(i==v[x].begin()) break ;
	}

这样就过不去了,所以vector代码过去完全是因为数据水,故本题应该不能进行最优性剪枝

2022/11/2 20:04
加载中...