类欧问题复习:

经典类欧:

\(F(n,a,b,c)=\sum_{x=0}^n \lfloor \frac{ax+b}{c} \rfloor\)

\(a\ge c~or~b\ge c\)时,\(F(n,a,b,c)=F(n,a\%c,b\%c,c)+\lfloor \frac{b}{c} \rfloor*(n+1)+\lfloor \frac{a}{c} \rfloor*n*(n+1)/2\)

\(m=\lfloor \frac{an+b}{c} \rfloor\)
\(\sum_{x=0}^n \lfloor \frac{ax+b}{c} \rfloor\)
\(\sum_{x=0}^n \sum_{j=1}^m [\lfloor \frac{ax+b}{c} \rfloor \ge j]\)
\(\sum_{x=0}^n \sum_{j=0}^{m-1} [\lfloor \frac{ax+b}{c} \rfloor \ge j+1]\)
\(\sum_{x=0}^n \sum_{j=0}^{m-1} [ ax \ge jc+c-b]\)
\(\sum_{x=0}^n \sum_{j=0}^{m-1} [ ax > jc+c-b-1]\)
\(\sum_{x=0}^n \sum_{j=0}^{m-1} [ x > \lfloor \frac{jc+c-b-1}{a} \rfloor]\)
\(\sum_{j=0}^{m-1} n-\lfloor \frac{jc+c-b-1}{a} \rfloor\)
\(=nm-f(c,c-b-1,a,m-1)\)

边界\(m=0\)时,return 0;

经典类欧应用:

  • \(\lfloor \frac{x}{2^k} \rfloor-2\lfloor \frac{x}{2^{k+1}} \rfloor\)来表示二进制第\(k\)位。

  • \(ax\% p<c(x\in[0,n])\)的数量,\(=F(n,a,p,c)-F(n,a,p-c,c)\)

变体类欧:

\(G(l,r,x,p)\)表示最小的数\(a\)满足\(l\le ax\%p\le r\)

因为\(ax\% p\)能表示的数形如\(k*gcd(x,p)\),所以当\(\lceil \frac{l}{gcd(x,p)}\rceil *gcd(x,p)>r\)时无解。

\(\lceil \frac{l}{x}\rceil *x \le r\)时,答案显然就是:\(\lceil \frac{l}{x}\rceil\)

否则:
\(l\le ax\%p\le r\)
\(l\le ax - bp \le r\)
\(-r \le bp - ax \le -l\)

因为此时\(r\%x > l\%x\),所以相当于:

\(-r \% x\le bp \% x \le -l \%x\)
注意这个\(\% x\)的值域在\([0,x)\)

调用\(b=G(-r \% x,-l \%x,p \% x,x)\)

\(a=\lfloor \frac{bp}{x} \rfloor + \lfloor \frac{-r\%x+r}{x} \rfloor\)

posted @ 2020-06-12 17:04  Cold_Chair  阅读(272)  评论(0编辑  收藏  举报