RQNOJ521 sudoku

         这是noip2009 的第四题,也是一道让我心痛不已的题目……

         拿到题目发现这显然是一到搜索,这不难看出。可能有人用dancing links 来解这道题,我认为这确实是正解,但不得不承认dancing links是一种比较高级的数据结构了,并非那么轻易就掌握的。

         既然如此,单纯的但富有有技巧的搜索能不能解决这个问题呢?答案是肯定的!我今天的这个代码用到了位运算判重——这是可以过掉80%的测试数据的。如果注意搜索顺序,加以改进便在0.5s之内就解决了问题,远远小于2s的时间限制。

         当然,可以看出我的这份代码还有优化的空间。搜索顺序中我只考虑了行的因素,那同理,列与九宫格也可以一起考虑进来一起排序。另外,这个顺序是动态的,如果用堆来维护,效果会更好!而且,我还没有加上对于ans的最优化剪枝!可以说优化空间巨大!

         不过,抛开对题目的剖析,仅仅从应试的角度来看,下面的代码,不仅仅AC了这道题,也将编程复杂度降到了理想的水平。应该说在noip中,为这道压轴题敲出130行的满分代码不会占用其他题目过多时间,十分划算!

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值