zoukankan      html  css  js  c++  java
  • P1516 青蛙的约会

    由于这题我被坑了一下,所以写个题解。

    链接

    大概是这样的:

      两个数a 、b,a每次可以+m , b每次可以加n, 他们的模数是 l , 请问最小加多少次(x)可以使得(a + mx) Ξ (b + nx) mod l

      也就是 a + mx = b + nx + kl (k为常数)

      式子可以变成: kl + (n - m)x = a - b , exgcd一波

    有两个我觉得坑点:

      1. 判断负数情况,(n - m) 可能是负数 , 负数和正数的gcd有可能是正数也有可能是负数 , 所以判断一下如果(n - m) 是负数,就把式子变成(m - nx + kl = b - a。

      2. 最小整数解,因为之前做题只习惯判断if(x < 0)的情况,忘记了x > 0 但不是最小整数解的情况,所以 x = ((x % mod) + mod)%mod 就是最小整数解

  • 相关阅读:
    布局管理
    菜单和工具栏
    Hello World,本章学习Qt的基本功能
    PyQt5中文手册
    qemu-kvm使用
    查看内核日志
    tmux快捷键
    vim插件YouCompleteMe安装
    git submodule删除多余模块
    vim ctags
  • 原文地址:https://www.cnblogs.com/GoodVv/p/13758061.html
Copyright © 2011-2022 走看看