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中的源点被标记为选取是在循环里被标记,而不是手动标记,切记切记。

  • 相关阅读:
    ES6语法:var、let、const的区别详解
    idea新建springboot项目
    Serlvet之cookie和session学习
    常见排序算法
    Spring MVC拦截器学习
    分组数据
    redis数据库学习
    redis实现排行榜
    redis整合springboot的helloworld
    dubbo整合springboot最详细入门教程
  • 原文地址:https://www.cnblogs.com/ShuraK/p/8668198.html
Copyright © 2011-2022 走看看