• noip宝藏


    题解:

    我觉得状压比搜索不知道简单到哪里去了。。

    为了练习搜索。。。想了一下这题的搜索。。

    然后会发现想想就很容易想到dp。。

    最后的搜索大概是这样的

    我们会发现有一类搜索都是这样

    你会重复(可能是指数级)经历一个状态,但是又无法避免

    比如这题

    假设你现在都是1,然后有n个点要被扩展成2

    那直接暴力dfs枚举连边会算成n!种

    所以我们会使用记忆化这种东西

    这题里我们可以记忆化每个点的d值,然后算出一个花费

    当经历重复状态花费又大于原先的时候就退出

    关键在于如何记忆

    稳一点建立真正的hash表,但这样空间是mo*n的 比较容易炸

    我们考虑用双模数(防止冲突)

    然后取两个模数里的答案的较大值 这样相对而言冲突概率很小

    想要观察正确性的话可以对拍一下(搜索和记忆化搜索对拍)

    另外从最优性剪枝来说

    如果剩下点*最小边+当前距离>ans

    就退出

    网上有题解用n^2的代价去找出剩余点中的最小边

    不管这个有用无用,但这个对复杂度是不会造成差的影响的

    因为下面要n^2枚举选的边,所以最多常数*2 所以这个我觉得是可行的

    搜索中的剪枝要尽量满足与原本就有的复杂度持平

    靶形数独那题也是这个道理

  • 相关阅读:
    设计模式(十)——模板方法模式
    用imageROI来增加某范围的像素
    OpenCv练习
    字符串格式化(七)-format
    列表初始化
    设计模式(九)——适配器模式
    右值引用&&
    设计模式(八)——外观模式
    Confluence 6 企业环境或者网站托管的 Java 配置策略
    Confluence 6 管理应用服务器内存设置
  • 原文地址:https://www.cnblogs.com/yinwuxiao/p/9917846.html
Copyright © 2020-2023  润新知