zoukankan      html  css  js  c++  java
  • csp-s 65 Simple

    最近的性质题都垮掉了

    nx+my=c,x,y非负整数 求1-q内有多少个c满足

    q<=1e18

    60% exgcd 但别深陷其中,性质还是要找

    考虑枚举x或y那么有c-m=nx,c-2*m=nx,的形式

    因为n,m均为正整数,所以在c-m>=0,c-2*m>=0  下 (c-m)%n==0 ,(c-2*m)%n==0 一定有合法x解

    全部枚举的话复杂度过高且有重复问题

    考虑如何避免重复:对于每一个确定的c有唯一确定的最小整数解

    所以只要枚举最小x/y的整数解即可

    考虑其范围:用到了exgcd的通解公式:

    x=x0+num*m/(gcd(n,m)),y=y0+num*n/(gcd(n,m)),

    最小整数解是x%(m/(gcd(n,m)))    y%( n/gcd(n,m) );

    分别对应范围0-m/gcd(n,m)-1,  0-n/(gcd(n,m))-1;

    m1e9,  n1e5所以枚举y的最小整数解那么每一个合法的c都在唯一的一个y中对应着唯一一个x 所以ans+=(q-i*m)/n+1即可算出合法解的个数

    +1是因为0的存在

    由于枚举了y=0,的情况所以这时+1表示了x=0,y=0,  ->c=0不合法

    所以答案是q-ans+1;

  • 相关阅读:
    JS 异步编程
    JS XMLHttpRequest
    JS 日期
    JS DOM
    JS 异常处理
    JS BOM
    JS 正则表达式
    JS 面向对象
    (22)python PhantomJS
    HDU1698 线段树(区间更新区间查询)
  • 原文地址:https://www.cnblogs.com/three-D/p/11639282.html
Copyright © 2011-2022 走看看