写在前面

笔者在刷题过程中遇到一些求积性函数前缀和的问题,其中有一类问题需要在低于线性时间复杂度的算法,今天就来浅析一下这类问题的求解方法,当作以后讲课使用的讲义。若之后有了新的研究,再来继续完善这篇文章。
本文会随时更新内容,建议以链接形式转载,或者与笔者保持联系。爬虫转载不标明出处必究。

author: skywalkert
original article: http://blog.csdn.net/skywalkert/article/details/50500009
last update time : 2017-04-01


前置技能

积性函数的定义

  1. 若f(n)f(n)的定义域为正整数域,值域为复数,即f:Z+→Cf:\mathbb{Z}^+\to\mathbb{C},则称f(n)f(n)为数论函数
  2. 若f(n)f(n)为数论函数,且f(1)=1f(1)=1,对于互质的正整数p,qp,q有f(p⋅q)=f(p)⋅f(q)f(p\cdot q)=f(p)\cdot f(q),则称其为积性函数
  3. 若f(n)f(n)为积性函数,且对于任意正整数p,qp,q都有f(p⋅q)=f(p)⋅f(q)f(p\cdot q)=f(p)\cdot f(q),则称其为完全积性函数

积性函数的性质与例子

  1. 常见的积性函数有

    • 除数函数σk(n)=∑d|ndk\sigma_k(n)=\sum_{d|n}{d^k},表示nn的约数的kk次幂和,注意σk(n)\sigma_k(n)与σk(n)\sigma^k(n)是不同的。
    • 约数个数函数τ(n)=σ0(n)=∑d|n1\tau(n)=\sigma_0(n)=\sum_{d|n}{1},表示nn的约数个数,一般也写为d(n)d(n)。
    • 约数和函数σ(n)=σ1(n)=∑d|nd\sigma(n)=\sigma_1(n)=\sum_{d|n}{d},表示nn的约数之和。
    • 欧拉函数φ(n)=∑ni=1[(n,i)=1]⋅1\varphi(n)=\sum_{i=1}^{n}{[(n,i)=1]\cdot 1},表示不大于nn且与nn互质的正整数个数,另外∑ni=1[(n,i)=1]⋅i=n⋅φ(n)+[n=1]2\sum_{i=1}^{n}{[(n,i)=1]\cdot i}=\frac{n\cdot\varphi(n)+[n=1]}{2},且对于正整数n>2n>2来说φ(n)\varphi(n)是偶数。
    • 莫比乌斯函数μ(n)\mu(n),在狄利克雷卷积的乘法中与恒等函数互为逆元,μ(1)=1\mu(1)=1,对于无平方因子数n=∏ti=1pin=\prod_{i=1}^{t}p_i有μ(n)=(−1)t\mu(n)=(-1)^t,对于有平方因子数nn有μ(n)=0\mu(n)=0。
    • 元函数e(n)=[n=1]e(n)=[n=1],狄利克雷卷积的乘法单位元,完全积性。
    • 恒等函数I(n)=1I(n)=1,完全积性。
    • 单位函数id(n)=nid(n)=n,完全积性。
    • 幂函数idk(n)=nkid^k(n)=n^k,完全积性。
  2. 关于莫比乌斯函数和欧拉函数有两个经典的公式
    • [n=1]=∑d|nμ(d)[n=1]=\sum_{d|n}{\mu(d)},将μ(d)\mu(d)看作是容斥的系数即可证明。
    • n=∑d|nφ(d)n=\sum_{d|n}{\varphi(d)},将in(1≤i≤n)\frac{i}{n}(1\le i\le n)化为最简分数统计个数即可证明。
  3. 若f(n)f(n)为积性函数,则对于正整数n=∏ti=1pkiin=\prod_{i=1}^{t}{p_i^{k_i}}有f(n)=∏ti=1f(pkii)f(n)=\prod_{i=1}^{t}{f(p_i^{k_i})};若f(n)f(n)为完全积性函数,则对于正整数n=∏ti=1pkiin=\prod_{i=1}^{t}{p_i^{k_i}}有f(n)=∏ti=1f(pi)kif(n)=\prod_{i=1}^{t}{f(p_i)^{k_i}}。

狄利克雷卷积与莫比乌斯反演

  1. 数论函数ff和gg狄利克雷卷积定义为(f∗g)(n)=∑d|nf(d)⋅g(nd)(f*g)(n)=\sum_{d|n}{f(d)\cdot g(\frac{n}{d})},狄利克雷卷积满足交换律、结合律,对加法满足分配律,存在单位元函数e(n)=[n=1]e(n)=[n=1]使得f∗e=f=e∗ff*e=f=e*f,若ff和gg为积性函数则f∗gf*g也为积性函数。
  2. 狄利克雷卷积的一个常用技巧是对于积性函数ff与恒等函数II的卷积的处理,例如n=∏ti=1pkii,g(n)=∑d|nf(d)n=\prod_{i=1}^{t}{p_i^{k_i}},g(n)=\sum_{d|n}{f(d)},则有g(n)=∏ti=1∑kij=0f(pji)g(n)=\prod_{i=1}^{t}\sum_{j=0}^{k_i}{f(p_i^j)}。
  3. 莫比乌斯反演也是对于g(n)=∑d|nf(d)g(n)=\sum_{d|n}{f(d)}的讨论,但是不要求ff是积性函数,适用于已知g(n)g(n)求f(n)f(n)的情况,由于I∗μ=eI*\mu= e,则g∗μ=f∗I∗μ=f∗e=fg*\mu=f*I*\mu=f*e=f,即f(n)=∑d|ng(d)⋅μ(nd)f(n)=\sum_{d|n}{g(d)\cdot\mu(\frac{n}{d})},类似地有g(n)=∑n|df(d)⇒f(n)=∑n|dg(d)⋅μ(dn)g(n)=\sum_{n|d}{f(d)}\Rightarrow f(n)=\sum_{n|d}{g(d)\cdot\mu(\frac{d}{n})},二项式反演也是类似的技巧。有一个例子可以看出欧拉函数和莫比乌斯函数之间的关系,由于∑d|nφ(d)=id(n)\sum_{d|n}{\varphi(d)}=id(n),所以φ(n)=∑d|nμ(d)nd\varphi(n)=\sum_{d|n}{\mu(d)\frac{n}{d}},也即φ(n)n=∑d|nμ(d)d\frac{\varphi(n)}{n}=\sum_{d|n}{\frac{\mu(d)}{d}}。

正文:黑科技

这种黑科技大概起源于Project Euler这个网站,由xudyh引入中国的OI、ACM界,目前出现了一些OI模拟题、OJ月赛题、ACM赛题是需要这种技巧在低于线性时间的复杂度下解决一类积性函数的前缀和问题。

首先看一个简单的例子,求前nn个正整数的约数之和,即∑ni=1σ(i)\sum_{i=1}^{n}{\sigma(i)},其中n≤1012n\le 10^{12}。
显然不能直接做了,但是我们可以推导一番:

∑i=1nσ(i)=∑i=1n∑j=1n[j|i]⋅j=∑i=1ni⋅∑j=1n[i|j]=∑i=1ni⋅⌊ni⌋

\sum_{i=1}^{n}{\sigma(i)}=\sum_{i=1}^{n}{\sum_{j=1}^{n}{[j|i]\cdot j}}=\sum_{i=1}^{n}{i\cdot\sum_{j=1}^{n}{[i|j]}}=\sum_{i=1}^{n}{i\cdot\lfloor\frac{n}{i}\rfloor}
当 i≤n√i\le\sqrt{n}时, ⌊ni⌋\lfloor\frac{n}{i}\rfloor显然只有 O(n√)O(\sqrt{n})个取值;当 i>n√i>\sqrt{n}时, ⌊ni⌋<n√\lfloor\frac{n}{i}\rfloor显然也只有 O(n√)O(\sqrt{n})个取值;对于固定的 ⌊ni⌋\lfloor\frac{n}{i}\rfloor, ii的取值是一段连续的区间,这段区间是[⌊n⌊ni⌋+1⌋+1,⌊n⌊ni⌋⌋][\left\lfloor\frac{n}{\left\lfloor\frac{n}{i}\right\rfloor+1}\right\rfloor+1,\left\lfloor\frac{n}{\left\lfloor\frac{n}{i}\right\rfloor}\right\rfloor],因此可以 O(n√)O(\sqrt{n})计算所求。
同样地,求前 nn个正整数的约数个数之和也可以这样计算,留给读者练习。
另外需要说明的是,∑ni=1⌊ni⌋⋅i=∑ni=1⌊ni⌋⋅(⌊ni⌋+1)2\sum_{i=1}^{n}{\lfloor\frac{n}{i}\rfloor\cdot i}=\sum_{i=1}^{n}{\frac{\lfloor\frac{n}{i}\rfloor\cdot (\lfloor\frac{n}{i}\rfloor+1)}{2}},这也是一种常见的表示形式。

现在我们来加大一点难度,求前nn个正整数的欧拉函数之和,即∑ni=1φ(i)\sum_{i=1}^{n}{\varphi(i)},其中n≤1011n\le 10^{11}。
目前本文提到的有关欧拉函数的公式只有几个,是否能用它们来帮助化简呢?答案是肯定的,接下来我们就利用∑d|nφ(d)=n\sum_{d|n}{\varphi(d)}=n来化简这个式子。
这个公式也可以看成是φ(n)=n−∑d|n,d<nφ(d)\varphi(n)=n-\sum_{d|n,d,设ϕ(n)=∑ni=1φ(i)\phi(n)=\sum_{i=1}^{n}{\varphi(i)},则有

ϕ(n)=∑i=1nφ(i)=∑i=1ni−∑d|i,d<iφ(d)=n⋅(n+1)2−∑i=2n∑d|i,d<iφ(d)=n⋅(n+1)2−∑id=2n∑d=1⎢⎣⎢⎢nid⎥⎦⎥⎥φ(d)=n⋅(n+1)2−∑i=2n∑d=1⌊ni⌋φ(d)=n⋅(n+1)2−∑i=2nϕ(⌊ni⌋)

\phi(n)=\sum_{i=1}^{n}{\varphi(i)}=\sum_{i=1}^{n}{i-\sum_{d|i,d
那么只要计算出 O(n√)O(\sqrt{n})个 ϕ(⌊ni⌋)\phi(\lfloor\frac{n}{i}\rfloor)的值,就可以计算出 ϕ(n)\phi(n),这样的复杂度又如何呢?
假设计算出 ϕ(n)\phi(n)的复杂度为 T(n)T(n),则有 T(n)=O(n√)+∑n√i=1T(i)+T(ni)T(n)=O(\sqrt{n})+\sum_{i=1}^{\sqrt{n}}{T(i)+T(\frac{n}{i})}, 这里只展开一层就可以了,更深层的复杂度是高阶小量,所以有 T(n)=∑n√i=1O(i√)+O(ni−−√)=O(n34)T(n)=\sum_{i=1}^{\sqrt{n}}{O(\sqrt{i})+O(\sqrt{\frac{n}{i}})}=O(n^\frac{3}{4})。
由于 ϕ(n)\phi(n)是一个积性函数的前缀和,所以筛法也可以预处理一部分,假设预处理了前 kk个正整数的ϕ(n)\phi(n),且 k≥n√k\ge\sqrt{n},则复杂度变为 T(n)=∑nki=1ni−−√=O(nk√)T(n)=\sum_{i=1}^{\frac{n}{k}}{\sqrt{\frac{n}{i}}}=O(\frac{n}{\sqrt{k}}),当 k=O(n23)k=O(n^\frac{2}{3})时可以取到较好的复杂度 T(n)=O(n23)T(n)=O(n^\frac{2}{3})。
之前利用 φ(n)=n−∑d|n,d<nφ(d)\varphi(n)=n-\sum_{d|n,d的地方是怎么想到的呢?不妨来看一下这个

n⋅(n+1)2=∑i=1ni=∑i=1n∑d[d|i]⋅φ(d)=∑id=1n∑d=1⎢⎣⎢⎢nid⎥⎦⎥⎥φ(d)=∑i=1nϕ(⌊ni⌋)

\frac{n\cdot(n+1)}{2}=\sum_{i=1}^{n}{i}=\sum_{i=1}^{n}\sum_{d}{[d|i]\cdot\varphi(d)}=\sum_{\frac{i}{d}=1}^{n}\sum_{d=1}^{\left\lfloor\frac{n}{\frac{i}{d}}\right\rfloor}{\varphi(d)}=\sum_{i=1}^{n}{\phi(\lfloor\frac{n}{i}\rfloor)}
如果能通过狄利克雷卷积构造一个更好计算前缀和的函数,且用于卷积的另一个函数也易计算,则可以简化计算过程。例如上题就是利用了 φ∗I=id\varphi*I=id的性质,但一定注意,不是所有的这一类题都只用配个恒等函数 II就可以轻松完事的,有时需要更细致的观察。

定义梅滕斯函数M(n)=∑ni=1μ(i)M(n)=\sum_{i=1}^{n}{\mu(i)},给定正整数 nn,计算M(n)M(n),其中 n≤1011n\le10^{11}。
有了欧拉函数的经验,这次似乎就轻车熟路了吧,使用 [n=1]=∑d|nμ(d)[n=1]=\sum_{d|n}{\mu(d)}来试试?

1=∑i=1n[i=1]=∑i=1n∑d|iμ(d)=∑i=1n∑d=1⌊ni⌋μ(d)=∑i=1nM(⌊ni⌋)

1=\sum_{i=1}^{n}{[i=1]}=\sum_{i=1}^{n}\sum_{d|i}{\mu(d)}=\sum_{i=1}^{n}\sum_{d=1}^{\lfloor\frac{n}{i}\rfloor}{\mu(d)}=\sum_{i=1}^{n}{M(\lfloor\frac{n}{i}\rfloor)}
因此 M(n)=1−∑ni=2M(⌊ni⌋)M(n)=1-\sum_{i=2}^{n}{M(\lfloor\frac{n}{i}\rfloor)},问题可在 O(n23)O(n^\frac{2}{3})时间复杂度下解决。

看了上面的例子,是不是认为这种做法很naive,很好学啊,再来看一个题吧!
令A(n)=∑ni=1i(n,i),F(n)=∑ni=1A(i)A(n)=\sum_{i=1}^{n}{\frac{i}{(n,i)}},F(n)=\sum_{i=1}^{n}{A(i)},求F(n)F(n)模(109+7)(10^9+7)的值,其中n≤109n\le 10^9。
先做一番化简,变成积性函数前缀和的样子:

A(n)=∑i=1ni(n,i)=∑i=1n∑d|n[(n,i)=d]⋅id=∑d|n∑id=1nd[(nd,id)=1]⋅id=12(1+∑d|nd⋅φ(d))

A(n)=\sum_{i=1}^{n}{\frac{i}{(n,i)}}=\sum_{i=1}^{n}\sum_{d|n}{[(n,i)=d]\cdot\frac{i}{d}}=\sum_{d|n}\sum_{\frac{i}{d}=1}^{\frac{n}{d}}{[(\frac{n}{d},\frac{i}{d})=1]\cdot\frac{i}{d}}=\frac{1}{2}(1+\sum_{d|n}{d\cdot\varphi(d)})
设 G(n)=2⋅F(n)−nG(n)=2\cdot F(n)-n,则

G(n)=2⋅F(n)−n=∑i=1n∑d|id⋅φ(d)=∑i=1n∑d=1⌊ni⌋d⋅φ(d)

G(n)=2\cdot F(n)-n=\sum_{i=1}^{n}\sum_{d|i}{d\cdot\varphi(d)}=\sum_{i=1}^{n}\sum_{d=1}^{\lfloor\frac{n}{i}\rfloor}{d\cdot\varphi(d)}
因此要求的是 ϕ′(n)=∑ni=1i⋅φ(i)\phi'(n)=\sum_{i=1}^{n}{i\cdot\varphi(i)}。
而对于 n=∏ti=1pkiin=\prod_{i=1}^{t}{p_i^{k_i}},有

∑d|nd⋅φ(d)=∏i=1t∑j=0kipji⋅φ(pji)=∏i=1tp2ki+1i+1pi+1

\sum_{d|n}{d\cdot\varphi(d)}=\prod_{i=1}^{t}\sum_{j=0}^{k_i}{p_i^j\cdot\varphi(p_i^j)}=\prod_{i=1}^{t}\frac{p_i^{2k_i+1}+1}{p_i+1}这并不是什么好算前缀和的函数。
但是不难发现 (id⋅φ)∗id=id2(id\cdot\varphi)*id=id^2,即

∑d|nd⋅φ(d)⋅nd=n⋅∑d|nφ(d)=n2

\sum_{d|n}{d\cdot\varphi(d)\cdot\frac{n}{d}}=n\cdot\sum_{d|n}{\varphi(d)}=n^2,这是一个很好计算前缀和的函数,于是有

n⋅(n+1)⋅(2n+1)6=∑i=1ni2=∑i=1n∑d|id⋅φ(d)⋅id=∑id=1nid⋅∑d=1⎢⎣⎢⎢nid⎥⎦⎥⎥d⋅φ(d)=∑i=1ni⋅ϕ′(⌊ni⌋)

\frac{n\cdot(n+1)\cdot(2n+1)}{6}=\sum_{i=1}^{n}{i^2}=\sum_{i=1}^{n}{\sum_{d|i}{d\cdot\varphi(d)\cdot\frac{i}{d}}}=\sum_{\frac{i}{d}=1}^{n}{\frac{i}{d}\cdot\sum_{d=1}^{\left\lfloor\frac{n}{\frac{i}{d}}\right\rfloor}{d\cdot\varphi(d)}}=\sum_{i=1}^{n}{i\cdot\phi'(\lfloor\frac{n}{i}\rfloor)}
因此 ϕ′(n)=n⋅(n+1)⋅(2n+1)6−∑ni=2i⋅ϕ′(⌊ni⌋)\phi'(n)=\frac{n\cdot(n+1)\cdot(2n+1)}{6}-\sum_{i=2}^{n}{i\cdot\phi'(\lfloor\frac{n}{i}\rfloor)},原问题可在预处理前 O(n23)O(n^\frac{2}{3})个值的基础上,在 O(n23logn)O(n^\frac{2}{3}\log n)的时间复杂度下解决。

但是注意到这种方法的常数与复杂度都可能较高,有时候可能再进行一些推导可以得到一个不使用正文方法的做法,例如ZOJ 3881 - From the ABC conjecture,本文的方法与网上一个解法类似,可以用于求解此题,但是可以这样推导之后得到更简单的一个做法。

需要使用此种方法的题目一般数据规模较大,例如n≤109,n≤1011,n≤1012n\le 10^9,n\le 10^{11},n\le 10^{12},但是并不是都要使用此类方法,有时候可能存在其他O(n√),O(n23)O(\sqrt{n}),O(n^\frac{2}{3})的做法,例如51Nod 1222 - 最小公倍数计数,会利用正文复杂度分析的方法即可,再例如ZOJ 5340 - The Sum of Unitary Totient,笔者不是很懂这题是否有其他做法能过,例如O(n34logn)O(\frac{n^\frac{3}{4}}{\log n})的积性函数求和方法(会在不久后更新),可能会因为数据组数较多而超时,网上的一个解法是分段压缩打表,具体问题需要具体分析。


推荐题目

这里给出一些练手的题目供大家理解上述方法,这类题还是较少的,如有其他题的题源欢迎分享。
51Nod 1244 - 莫比乌斯函数之和
51Nod 1239 - 欧拉函数之和
BZOJ 3944 - Sum
HDU 5608 - function
51Nod 1238 - 最小公倍数之和 V3
51Nod 1237 - 最大公约数之和 V3
51Nod 1227 - 平均最小公倍数
Tsinsen A1231 - Crash的数字表格
SPOJ DIVCNT2 - Counting Divisors (square)
51Nod 1222 - 最小公倍数计数(复杂度分析)
BZOJ 4176 - Lucas的数论
51Nod 1220 - 约数之和
51Nod 1584 - 加权约数和
ZOJ 3881 - From the ABC conjecture(不需要使用正文方法)
BZOJ 3512 - DZY Loves Math IV
ZOJ 5340 - The Sum of Unitary Totient(常规积性函数求和,数据组数较多,只可分段打表)
SPOJ DIVCNT3 - Counting Divisors (cube)(常规积性函数求和,注意代码长度限制,不可打表)
51Nod 1575 - Gcd and Lcm(常规积性函数求和,可分段打表)
51Nod 1847 - 奇怪的数学题(非常规积性函数求和,综合题,可分段打表)

Tips: 加粗内容为待更新内容。

浅谈一类积性函数的前缀和相关推荐

  1. 浅谈一类积性函数的前缀和(转载)

    本文转自:http://blog.csdn.net/skywalkert/article/details/50500009 另外,莫比乌斯反演和杜教筛其他可转到 http://blog.leanote ...

  2. 浅谈积性函数求前缀和

    转载至https://blog.csdn.net/skywalkert/article/details/50500009 前置技能 积性函数的定义 若f(n)f(n)的定义域为正整数域,值域为复数,即 ...

  3. 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  4. 【算法专题】积性函数

    [参考] ★浅谈一类积性函数的前缀和 by skywalkert 任之洲数论函数.pdf 论逗逼的自我修养之寒假颓废记 by jiry_2 杜教筛 [学习笔记][更新中] by Candy? [变化技 ...

  5. 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)

    J. Sum A square-free integer is an integer which is indivisible by any square number except 11. For ...

  6. 51nod 1244 莫比乌斯函数之和(积性函数前缀和)

    关于积性函数前缀和的问题,可以关注糖老师的博客 关于积性函数前缀和的问题,可以关注糖老师的博客 http://blog.csdn.net/skywalkert/article/details/5050 ...

  7. 欧拉心算(反演 + 积性函数筛)

    欧拉心算 推式子 ∑i=1n∑j=1nϕ(gcd(i,j))=∑d=1nϕ(d)∑i=1nd∑j=1nd[gcd(i,j)==1]=∑d=1nϕ(d)∑k=1ndμ(k)(⌊nkd⌋)2另t=kd=∑ ...

  8. P6222 「P6156 简单题」(反演 + 积性函数线性筛)

    P6156 简单题 推式子 ∑i=1n∑j=1n(i+j)kf(gcd(i,j))gcd(i,j)=∑i=1n∑j=1n(i+j)kμ2(gcd(i,j))gcd(i,j)=∑d=1nμ2(d)dk+ ...

  9. bzoj2186 莎拉公主的困惑 积性函数

    这个题其实就是考察了积性函数phi的一些性质 首先,phi(2)*4=phi(8):∴ phi(P)*P^n=phi(P*P^n) 所以 phi(2*3*4)=phi(2*4)*phi(3)=phi( ...

  10. HDU 6134 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)

    实在太长了直接放题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6134 这题就是求 考虑当Gcd(i, j)==1时,除了j为1的情况,其它时候i/j一 ...

最新文章

  1. 在数据库组件中用业务规则剖析挑选数据
  2. 2020中国一流大学名单(27所)和中国大学综合实力300强出炉!
  3. idea webapp目录404问题,war包方式运行
  4. f450四轴使用技巧
  5. 沃土云创首批方案认证伙伴授牌,华为云与伙伴共创云原生产业新价值
  6. oracle edit历史,OGG-00952---oracle goldengate无法purge历史表和mark表处理一例
  7. Kali Linux 秘籍 第三章 高级测试环境
  8. adalm pluto_Apache Pluto Portlet&Struts 2集成示例教程
  9. IntelliJ Idea 主题(黑色)+代码高亮显示
  10. 朱敏:美国往事---硅谷第一代中国大陆创业家的20年
  11. php做个抽签人名,怎样在excel制作一个用于抽签函数,别的工具也行(excel随机抽取人名不重复)...
  12. 圈小猫游戏与天使问题——容错值理论
  13. Java获取当前年份,计算当前月有多少自然日、有多少工作日、有几周
  14. 火爆社区的开源数据可视化工具 datart 新用户体验教程
  15. 如何为py图表添加坐标轴/标题/图例等辅助元素
  16. Charles抓包神器常用功能,常见问题解决
  17. Cent OS几个好玩的命令
  18. JZOJ 1008 1010
  19. Web后台管理系统框架模板
  20. python中文件最重要的功能_重点汇总-python-gitbook-重要点学习-1

热门文章

  1. 新兴新能源设施[1]--盐穴压缩空气储能相关配套设施
  2. PHP微信公众号开发——群发消息
  3. IJCAI 2021 投稿安排出来了!新审稿机制体验一下?
  4. mysql 处理文本数据_mysql文本处理函数实例(数据处理函数的使用一)
  5. 【金融财经】金融市场一周简报(2017-09-15)
  6. 独立思考者的思考模型----智商160以上的人都应该学会的(摘自杜牛牛博客)
  7. Strick mode 和Trace View使用
  8. 关于VS.NET中多个项目的工程相互引用和多个dll引用的问题! - antony--异域空间 - 博客园
  9. insmod 时报错“Unknown symbol”问题的解决
  10. 金仓数据库在 TPCE(dbt5,tpsE)测试框架方面的实践和突破