题目化简

根据C形阵的性质推出
可以将所有6个变量(恒成立,不把看作变量)用表示:

从这个式子中也能发现是对称关系,从图中也可以看出。

由于所有变量都是整数,还有三个约束为:能被(和)整除,能被整除。
对于op==0的情况,需要枚举每个(从1到n),找出满足条件的,并计算的累加和即可;对于op==1的情况,要求至少有6个不同的数就是要求除外的数都互不相同。
记给定时所有的总和为,这是op==0时的答案;记互不相同时所有的和为,这是op==1时的答案。

完美C形阵的特点

组合问题计数,用容斥原理尝试分析。列出有变量重复的情况,先考虑两两重复(如,再考虑多个变量相等(如)。
两两相等有种情况。由于变量之间并非独立(有(1)的约束),所以这些情况一定有等价的情形。把这些等价情形都转换为之间的关系:

化简后的关系对应的原始等式(两两相等)

或许根据这个系统的原本的约束数量,就能够计算出这15种情况一定会归为这6种可能(而不需要枚举)。或许需要代数学的知识。另外,约束(1)是齐次的,可能帮助推导。

这样,两个变量相等的所有情况被我们化简为上面的6种,这六种情况分别记作,构成集合。设是第种情况下的的和,是第两种情况同时发生时的的和。
根据容斥原理,

下面考虑多个变量(至少3个)都相等的情况。令上面两两相等的6种情况中至少两个等式同时成立,发现:全部都会得到,即全部变量都由决定(只有一个自由度),此时,(价值与大小相等)。
这说明减去上面的六种情况时(对应式2的项),这个唯一解被我们减去了6次,我们应该只减掉它一次,所以需要加回5次这个情况的值(即),共需要加

也可以继续用式2的形式化方式计算。但按照容斥原理思想做更简单。

由于的对称性,。式2化简为

计算优化

积性函数

求解 的关键在于分析其函数性质。由于题目的约束条件全部基于整除关系,这天然契合算术基本定理。
的唯一分解为
条件 等价于对 的质因子分解 中每个质因子 的指数提出独立的不等式约束:

这说明不同质因子之间的约束是完全独立的。同时,对应的贡献 也是按质因子连乘的。
因此,总和 满足乘法分配律,即对于任意互质的正整数 ,有 。同理,各部分交集的和 也是积性函数。

既然是积性函数,我们只需推导 (即单一质数次幂)时的通项公式即可。
时,令 ,此时 。令

对于
枚举 的值,统计有多少对 满足约束。

  • 时,,共 对;
  • 时,,共 对。

对于 (满足 ):
此时 。代入约束得 ,此时

对于 (满足 ):
此时 。代入约束得 ,此时

对于 (满足 ):
此时 ,即 。代入得 为常数。满足条件的 对。

对于 (满足 ):
此时 。由于 ,解得 。此时

欧拉线性筛

在明确了积性函数的局部公式后,可以利用欧拉线性筛(Euler Sieve)在 时间内预处理出所有

算法流程如下:

  1. 维护一个数组 low[i],记录 的最小质因子的纯次幂部分(如 时,low[12] = 4)。
  2. 在筛过程中,遇到质数 时,直接代入 计算
  3. 当枚举到合数 时( 的最小质因子):
    • 互质,直接由积性函数性质得到 low 更新为 low[i * p] = p
    • 此时 的因子。更新 low[i * p] = low[i] * p
      • low[i * p] == i * p,说明 整体是某个质数 的纯次幂 ,此时暴力调用上面推导的公式进行 计算。
      • low[i * p] != i * p,说明 可以拆分为互质的两部分:low[i * p](i * p) / low[i * p]。再次利用积性函数性质相乘得出结果。

通过该优化,空间复杂度为 ,时间复杂度由于所有公式的累加计算均落在质数纯次幂点上,整体复杂度严格为 ,完全可以在时限内通过 的数据规模。最后基于计算出的数组,对于给定的 op,应用前文对应的求和/容斥公式即可输出答案。