zoukankan      html  css  js  c++  java
  • BSOJ 6289【NOIP2018模拟赛】黄昏

    题意

    题目链接:https://oj.bashu.com.cn/code/problempage.php?problem_id=6289

    题意简述:给定一个(n)个点,(m)条边的无向图,给定一个起点(st),保证边权都为正,有(q)个询问,每次给定终点(ed),求其(st)(ed)的乘积最短路,由于答案可能会非常大,我们要把最后的答案模上998244353

    乘积最短路定义:路径上的所有边权的乘积尽量小的路径

    Solution

    算法1:考虑没有取模的操作,就是最短路的板子...

    算法2:可以考虑高精最短路...但是时间会炸

    算法3:

    一个很妙的转化

    我们对于每一条路的状态,不仅记录它(%MOD)过后的值,还要记录对这条路取(log)的值(用(double)

    而我们记录这个(log)值有什么用呢,我们发现,记录了这个(log)之后,我们的每一次乘法到这里全部都变成了加法!

    容易发现这样一定是不会爆(double)的,而且这里随着路径原值的增加,其实(log)值也是单调递增的,所以我们可以直接用(log)值来代替原值

    所以我们在比较的时候比较这个(log)值,而在更新答案的时候更新(MOD)过后的值就可以了

  • 相关阅读:
    迭代器简介
    关于判断对象是否相等的问题
    NIO
    BIO流分类介绍
    servlet简介
    http协议简介
    爬虫常用链接
    http和https协议
    爬虫的合法性研究
    爬虫介绍
  • 原文地址:https://www.cnblogs.com/Akmaey/p/14076809.html
Copyright © 2011-2022 走看看