zoukankan      html  css  js  c++  java
  • ZOJ 1002 Fire Net 的答案(回溯法)

           ---------------------------------------------------------------------------------------------------------------------------

           严格来讲,此题并不算我做出来的。因为我在WA后忍不住搜索了这道题的网上资料,并在参考了“洞庭散人”的代码后AC的。  

           ----------------------------------------------------------------------------------------------------------------------------

            ZOJ 1002: Fire Net(碉堡 火力网)

            http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2

            此题大意是在一个最大4*4网格组成的城市里,每个网格可能为“墙壁”(用‘X’表示)和“街道”(用‘.’表示)。现在在街道放置碉堡,每个碉堡可以向上下左右四个方向开火,子弹射程无限远。墙壁可以阻挡子弹。问最多能放置多少个碉堡,使它们彼此不会互相摧毁。

           例如输入:

           .X..
           ....
           XX..
           ....

           则应输出最大个数为5。

           此题和n后问题非常类似,因此可用回溯法搜索整个解空间树。最开始我使用了“贪心法”但是WA,原因就在于贪心法的特点是:得到的解不一定是整体最优解。因此还是得用回溯法搜索整个空间树。和n后问题解法一样,CanPut是判别函数,判断位置(x,y)是否能放置碉堡。

           以下是我写的代码,但大体上都参考了洞庭散人的文章(代码在本质上完全一致):

           http://www.cnblogs.com/phinecos/archive/2008/09/18/1293017.html

    Code_1002_Fire_Net


     

  • 相关阅读:
    easyui_1
    JSONOBJECT
    基础回顾—list遍历4种
    <input type=file>上传唯一控件
    window.open
    poi--导入
    java字符串的替换
    一、IIS搭建前端静态模板_资源加载问题
    一、ASP.NET Iframework_SignalR集线器类(v2)
    一、ASP.NET Iframework_SignalR永久连接类(v2)
  • 原文地址:https://www.cnblogs.com/hoodlum1980/p/1318407.html
Copyright © 2011-2022 走看看