zoukankan      html  css  js  c++  java
  • 搜索Ex (洛谷提高历练地)

    搜索Ex

    P1120 小木棍

    题意:不超过65根长度小于50的小木棍(是由一批等长木棍砍断得到的),求原始木棍的最小可能长度

    分析:优化+减枝爆搜

    搜索状态要记录当前尝试的已经填好的长度,当前尝试填的木棍的id,以及已经填好了的木棍的数量。

    • 优先考虑长度大的木棍,因为组合原始木棍时,长的适应性比较差
    • 在组合之后的一个木棍中,组成它的小木棍顺序如果不做要求,会导致重复搜索很多状态,所以可以规定先后加入一根原始木棒的木棍长度时递减的。
    • 记录最近一次搜索过的木棍长度,接下来跳过与他等长的木棍
    • 对于一个新尝试的原始木棍,如果一开始插入的就是失败的,那么当前分支直接返回失败
    • 对于刚拼凑好的一个原始木棍,如果递归分支返回失败,那么当前分支也会失败。

    P1378 油滴扩展

    分析:(N le 6),所有情况 (6! = 720) 种,对于每种顺序,从1到n依次考虑当前油滴能够扩展的最大半径,最后用长方形面积减去即可

    P1514 引水入城

    分析:首先要想到的一个是对于每个可以建设蓄水厂的位置,它能所及的邻近沙漠的城市是有一个范围的,另外通过样例可以注意到水可以往上走,所以这题如果按照从下向上DP求范围是不对的,能够想到的办法就是记忆化了,求出区间范围之后就是一个最小区间覆盖的问题,直接贪心求或者DP求都是可以的。

    P1312 Mayan游戏

    这题还没写,之后补

    P1441 砝码称重

    分析:很容易可以想到是用背包求,n个砝码去掉m个共(C_n^m)种,每个砝码最重100,所以就是一个((n-m)^2*100) 复杂度的背包。

    P1242 新汉诺塔

    分析:原来的汉诺塔一开始只会在一个柱子上,比如在A,最终要把所有的移动到C,我们要先把除了最大的其他所有的移动到B,再把最大的移动到C,这样做是保证最优的。但是在此题中就不灵验了,因为当前最大的那个圆盘或许可以直接到达目标柱,这是因为比他小的都在第三个柱子上。可以想到这个情况只会在一开始调整最大圆盘时发生,这是因为调整它之后,其他所有盘都在一个柱子上,问题就会变成原始的汉诺塔问题了。

  • 相关阅读:
    我的收藏:第一章:汇总
    实战:第二章:关于EZDML工具使用踩的坑
    Docker:第二章:部署项目,对镜像,容器的操作
    电商网站项目:第一章:进度
    多线程:第一章:我(线程)这一生
    性能优化:第一章:我们应该怎么优化
    关于EZDML数据库表结构制作设计工具使用踩的坑
    集群与分布的区别
    strip_tags--php
    关于html的一些杂技
  • 原文地址:https://www.cnblogs.com/1625--H/p/11657491.html
Copyright © 2011-2022 走看看