zoukankan      html  css  js  c++  java
  • HDU-1010 Tempter of the Bone(奇偶剪枝)


    题意: 有一只可爱的不得了的小狗狗,迷上了一根小骨头,当它叼起了小骨头的时候却发现这是一个陷阱,小骨头就这样背叛了它(咳咳咳),然后它踩着的地面下一秒就会下沉,所以不能在一块地面停留超过一秒钟,倒霉的是,这个迷宫的大门只会在规定的时间内打开不超过1分钟,所以小狗必须在规定时间内到达大门才能逃出迷宫。。。


    先是看了一眼数据范围,然后果断深度优先搜索,然后,然后就TLE,然后就眉头一皱发现问题并不简单,原来是缺少了一个必要的技能,那就是奇偶剪枝。。。

    先看这样一幅图:

    0
    1
    0
    1
    0
    1
    0
    1
    0
    1
    0
    1
    0 1 0
    1
    0 1 0 1
    大概不难看出从标0的格子到标0的格子要走偶数步,从标1的格子到标1的格子也要走偶数步,而从标0的格子到标1的格子要走奇数步,所以当给的步数为奇数时,不可能从1位走到另一个1位(或从0到0),设从一个格子A到另一个格子B的最短距离为min,min=abs(x1-x2)+abs(y1-y2); 因为沿途还可能会有障碍,所以A到B的距离dist=min+s; s一定是偶数,所以min和dist同奇偶,所以只要判断给出的限制步数与dist的奇偶性就可以了。。。。真的是一个神奇的大宝贝(?)。。。

    代码如下:





  • 相关阅读:
    1017.陶陶装苹果
    1084.爬楼梯加强版
    1056.A ^ B Problem 快速幂算法。
    1074.我们喜欢递归的斐波那契数列
    1073.我们喜欢递归的阶乘
    1046 没过
    python 基本常用数据类型
    yii2.0 数据库查询操作
    python 随便笔记
    搭建自己的koa+mysql后台模板
  • 原文地址:https://www.cnblogs.com/Pretty9/p/7347673.html
Copyright © 2011-2022 走看看