zoukankan      html  css  js  c++  java
  • [poj1062]昂贵的聘礼_最短路_离散化

    昂贵的聘礼 poj-1062

        题目大意:原文链接?不是英文题,自己看

        注释:$1le N le 100$。

          想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不是相邻两点。所以我们考虑枚举当前可接受等级的区间。显然最多只有100个,然后我们用Dijkstra或者spfa求单源最短路即可。

            下面我们思考如何建图:

          其中,low[i][j]表示j物品可以使得i物品降价为low[i][j],val[i]表示单独购买 i 物品所需要的金币数。

          然后我们通过离散化使得所有的等级在一个递增的序列中,使得移动区间窗口使得酋长从窗口的最左端爬到最右端即可。

        代码就不贴了,太丑了。

        小结:这题的建图网上好像就我一个是这么建的,算了,怎么样都好吧。

          错误:链式前向星中to[j]表示的是节点。在使用链式前向星中的边权数组的时候直接使用value[j]即可,而不是value[to[j]]。  

            Dijkstra中的源点被标记为选取是在循环里被标记,而不是手动标记,切记切记。

  • 相关阅读:
    ●单例模式
    ●扩展方法
    ●存储过程比sql语句慢
    ●rownum() over()
    ●日期格式化
    ●sql优化
    VS建立Web网站 20141201
    ORM操作(一) 20141128
    流的操作20141104
    控件:菜单、工具栏、状态栏及TreeView的操作 20141103
  • 原文地址:https://www.cnblogs.com/ShuraK/p/8668198.html
Copyright © 2011-2022 走看看