• 类欧几里得算法


    ∑ i = 0 n ⌊ a i + b c ⌋ \sum\limits_{i=0}^{n}\lfloor \frac{ai+b}{c} \rfloor i=0ncai+b

    推式子步骤

    分类讨论

    a = 0 a=0 a=0

    是个最简式子

    b ≥ c b\ge c bc a ≥ c a\ge c ac

    f ( a   m o d   c , b   m o d   c , c , n ) f(a\bmod c,b\bmod c,c,n) f(amodc,bmodc,c,n) 转移过来,拆一下括号就行

    其他情况

    M = ⌊ a n + b c ⌋ M=\lfloor\frac{an+b}{c}\rfloor M=can+b

    ⌊ a i + b c ⌋ = ∑ j = 1 M [ j ≤ ⌊ a i + b c ⌋ ] \lfloor \frac{ai+b}{c} \rfloor=\sum_{j=1}^M [j\le\lfloor\frac{ai+b}{c}\rfloor] cai+b=j=1M[jcai+b⌋]

    1. 拆一下后面的除号
    2. 把所有 j j j 变成 j − 1 j-1 j1
    3. 交换求和顺序
    4. 变成 i > x i>x i>x 的形式
    5. 变成 n − i ≤ x n-i\le x nix 的形式
    6. 后面直接换成 f ( c , c − b − 1 , a , m − 1 ) f(c,c-b-1,a,m-1) f(c,cb1,a,m1)
    int floor_sum(int n, int c, int a, int b) {
    	if(a==0) return (n+1)*(b/c); 
    	if(a>=c || b>=c) 
    		return floor_sum(n, c, a%c, b%c)+n*(n+1)/2*(a/c)+(n+1)*(b/c); 
    	int m=(a*n+b)/c; 
    	return n*m-floor_sum(m-1, a, c, c-b-1); 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    对于 ∑ i = 0 n ⌊ a i + b c ⌋ 2   ,   ∑ i = 0 n i ⌊ a i + b c ⌋ \sum\limits_{i=0}^{n}{\lfloor \frac{ai+b}{c} \rfloor}^2\,,\ \sum\limits_{i=0}^{n}i\lfloor \frac{ai+b}{c} \rfloor i=0ncai+b2, i=0nicai+b 的求解

    推的方法类似,不过会互相调用

    node floor_sum(int a, int b, int c, int n) {
    	if(a==0) return {(n+1)*(b/c)%p, (n+1)*(b/c)%p*(b/c)%p, n*(n+1)%p*i2%p*(b/c)%p}; 
    	if(a>=c || b>=c) {
    		node t=floor_sum(a%c, b%c, c, n); 
    		int F=t.f+n*(n+1)%p*i2%p*(a/c)%p+(n+1)*(b/c)%p; 
    		int G=t.g+2*t.h%p*(a/c)%p+2*(b/c)%p*t.f%p+n*(n+1)%p*(2*n+1)%p*i6%p*(a/c)%p*(a/c)%p+(n+1)*n%p*(a/c)%p*(b/c)%p+(n+1)*(b/c)%p*(b/c)%p; 
    		int H=t.h+n*(n+1)%p*(2*n+1)%p*i6%p*(a/c)%p+n*(n+1)%p*i2%p*(b/c)%p; 
    		return {F%p, G%p, H%p}; 
    	}
    	int m=(a*n+b)/c; 
    	node t=floor_sum(c, c-b-1, a, m-1); 
    	int F=n*m%p-t.f; 
    	int G=n*m%p*(m+1)%p-2*t.f%p-2*t.h%p-F; 
    	int H=(m*n%p*(n+1)%p-t.g-t.f)%p*i2%p; 
    	return {F%p, G%p, H%p}; 
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    ATF官方文档翻译(二):Authentication Framework & Chain of Trust(身份验证框架和信任链)(2)
    binding 里面local的用法
    别再问我Python打包成exe了!(终极版)
    java毕业设计球迷信息交流论坛源码+lw文档+mybatis+系统+mysql数据库+调试
    记一次频繁GC问题的排查
    编写playbook实现LNMP架构基于源码方式、变量,加密文件
    了解GPT:ChatGPT的终极指南
    模拟问题(中)
    -最低分-
    从9.10拼多多笔试第四题产生的01背包感悟
  • 原文地址:https://blog.csdn.net/zhangtingxiqwq/article/details/132718582