zoukankan      html  css  js  c++  java
  • [Noip2017]小凯的疑惑 exgcd 同余类BFS

    $ ightarrow $ 戳我进洛谷原题

    小凯的疑惑

    时空限制 $ quad $ 1000ms / 256MB

    题目描述

    小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。
    每种金币小凯都有 无数个。
    在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。
    现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?
    注意:输入数据保证存在 小凯无法准确支付的商品。
     

    输入输出格式

    输入格式

    两个正整数 $ a $ 和 $ b $ ,它们之间用一个空格隔开,表示小凯中金币的面值。

    输出格式:

    一个正整数 $ N $ ,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。
     

    输入输出样例

    输入样例#1

     3 7
    

    输出样例#1

     11
    

     

    说明

    【输入输出样例 1 说明】

    小凯手中有面值为 $ 3 $ 和 $ 7 $ 的金币无数个,
    在不找零的前提下无法准确支付价值为 $ 1,2,4,5,8,11 $ 的物品,
    其中最贵的物品价值为 $ 11 $ ,比 $ 11 $ 贵的物品都能买到,比如:
    $ 12 = 3 imes 4 + 7 imes 0 $
    $ 13 = 3 imes 2 + 7 imes 1 $
    $ 14 = 3 imes 0 + 7 imes 2 $
    $ 15 = 3 imes 5 + 7 imes 0 $

     

    【数据范围与约定】

    对于 $ 30 $ %的数据: $ 1 le a,b le 50 $ 。
    对于 $ 60 $ %的数据: $ 1 le a,b le 10^4 $ 。
    对于 $ 100 $ %的数据:$ 1 le a,b le 10^9 $ 。
     

    题解

    • 常规解法:

    • 根据 $ exgcd $ ,不考虑 $ p,q ge 0 $ 的情况下,通解 $ p=p_0 + k imes b, q=q_0- k imes a $

    • $ p,q ge 0 $ 时,不能表示的必然满足 $ p>0, quad q>0, quad p-b<0, quad q+a>0 $

    • 应取 $ p=b-1,q=-1 $ ,此时 $ p imes a+q imes b $ 有最大值

    • 答案为 $ a*b-a-b $

     

    • 同余类 $ BFS $ 思想:

    • 编号为 $ 0~a-1 $ 的 $ a $ 个点,每个点 $ x $ 到 $ (x+b)quad mod quad a $ 连边

    • 由 $ a,b $ 互质可知 $ 0,b,2 imes b, dots , (a-1) imes b $ 在 $ mod quad a $ 后必然各不相同

    • 这也是各个同余类中最小能标识的非负整数(最短路)

    • 不能表示的,就是再减掉 $ a $ ,其中最大的是 $ (a-1)*b-a $

  • 相关阅读:
    Spring AOP概念及作用
    Spring IOC 概念及作用
    Spring基本介绍
    Mybatis注解开发
    Mybatis缓存及延迟加载策略
    认识各种内存地址
    认识/proc/[pid]/
    进程查看命令ps和top
    认识进程
    认识多处理器架构
  • 原文地址:https://www.cnblogs.com/PotremZ/p/NOIP2017D1T1.html
Copyright © 2011-2022 走看看