zoukankan      html  css  js  c++  java
  • 类欧几里得算法

    要求以下函数:

    [f(a, b, c, n) = sum_{i = 0}^n lfloor frac{ai + b}{c} floor ]

    (a = k_1 imes c + a', b = k_2 imes c + b'),则

    [lfloor frac{ai + b}{c} floor = lfloor frac{(k_1 imes c + a') imes i + (k_2 imes c + b')}{c} floor = lfloor frac{a'i + b'}{c} floor + k_1 imes i + k_2$$。 所以$$f(a, b, c, n) = f(a mod c, b mod c, c, n) + frac{n(n + 1)}{2} imes lfloor frac{a}{c} floor + (n + 1) imes lfloor frac{b}{c} floor$$。 所以只需考虑$a < c$且$b < c$的情况。 令$m = lfloor frac{an + b}{c} floor$, $sumlimits_{i = 0}^n lfloor frac{ai + b}{c} floor$ $= sumlimits_{i = 0}^n sumlimits_{j = 1}^m [lfloor frac{ai + b}{c} floor ge j]$ $= sumlimits_{i = 0}^n sumlimits_{j = 0}^{m - 1} [lfloor frac{ai + b}{c} floor ge j + 1]$ $= sumlimits_{i = 0}^n sumlimits_{j = 0}^{m - 1} [ai ge jc + c - b]$ $= sumlimits_{i = 0}^n sumlimits_{j = 0}^{m - 1} [ai > jc + c - b - 1]$ $= sumlimits_{i = 0}^n sumlimits_{j = 0}^{m - 1} [i > frac{cj + c - b - 1}{a}]$ $= sumlimits_{j = 0}^{m - 1} sumlimits_{i = 0}^n [i > frac{cj + c - b - 1}{a}]$ $= sumlimits_{j = 0}^{m - 1} (n - lfloor frac{cj + c - b - 1}{a} floor)$ $= nm - sumlimits_{j = 0}^{m - 1} lfloor frac{cj + c - b - 1}{a} floor$ $= nm - f(c, c - b - 1, a, m - 1)$ 综上: $$f(a, b, c, n) = left { egin{aligned} & {(n + 1) imes lfloor frac{b}{c} floor} & a = 0 & \ & {-f(c, c - b mod c - 1, a mod c, lfloor frac{(a mod c)n + b mod c}{c} floor - 1) + n imes lfloor frac{(a mod c)n + b mod c}{c} floor + frac{n(n + 1)}{2} imes lfloor frac{a}{c} floor + (n + 1) imes lfloor frac{b}{c} floor} & a > 0 & end{aligned} ight.]

    它把求(f(a, b, c, n))转化为求(f(c, b', a mod c, n')),这和欧几里得算法很类似,这类算法称之为类欧几里得算法。

    留坑......

  • 相关阅读:
    P3405 [USACO16DEC]Cities and States S
    P1536 村村通
    P2853 [USACO06DEC]Cow Picnic S
    Springboot整合Swing制作简单GUI客户端项目记录
    Gradle打包可执行jar文件
    gradle配置优化及dependencies中各种依赖方式说明
    Gradle 打可执行jar包
    java swing开发窗体程序开发(四)MVC结构
    Java Swing 图形界面开发(目录)
    使用idea开发普通java项目,使用maven管理依赖,使用slf4j和log4j的配置方案
  • 原文地址:https://www.cnblogs.com/tkandi/p/9777941.html
Copyright © 2011-2022 走看看