摘要: dfs搜索每个字母对应的数字 剪枝: 1.当一列上三个数a b c都已知时,如果 (a+b)%n!=c && (a+b+1)%n!=c 剪枝(+1是考量进位,注意&&) 2.考虑到我们根据每排数据剪枝的,我们可以改变一下搜索的顺序,按照字母从上往下,从右往左出现的顺序来搜 3.因为我们是从最低位开始 阅读全文
posted @ 2016-06-19 22:29 FuTaimeng 阅读(187) 评论(0) 推荐(0)
摘要: 1.读入图,边是双向的 2.递归建树,同时确定每一层的节点 3.dfs按层搜索,先把这一层所有被传染的(die[pa[k]]=true的)的die置为true 然后循环,每次把一个die为true的变为false,表示断开这条边,继续dfs dfs的最后记得把这一层die的全部置为false(查了一 阅读全文
posted @ 2016-06-19 20:02 FuTaimeng 阅读(190) 评论(0) 推荐(0)
摘要: 主要是优化搜索顺序 从选择较少的点开始,可以大大提高效率 在search(x,y)找点的时候,对于一个空点(x y),设置一个评分score: score=min{ 横线x上能填的数字个数,竖线y上...个数,所在大方块中...个数 } 选取score最小的点搜索 代码: 阅读全文
posted @ 2016-06-19 11:16 FuTaimeng 阅读(355) 评论(0) 推荐(0)
摘要: dfs搜索+剪枝 1.原棒可能的长度len:最长的小棒<=len<=所有小棒长度和sum and sum%len==0 2.dfs的参数:len、leftlen当前要拼的原棒剩下的长度、num剩下的小棒的个数、last上层dfs用的小棒序号+1,为避免重复,这次从last向后试探 3.剪枝: 1剪枝 阅读全文
posted @ 2016-06-19 11:10 FuTaimeng 阅读(271) 评论(0) 推荐(0)