bzoj3434[wc2014]时空穿梭

题目描述 


输入格式

第一行包含一个正整数T,表示有T组数据求解
每组数据包含两行,第一行包含两个正整数N,C(c>=2),分别表示空间的
维数和需要选择的暂停点个数
第二行包含N个正整数,依次表示M1,M2....Mn


输出格式

有T行,每行一个非负整数,依次对应每组数据的答案。


  • 题解:

    • 一个$n$维向量$(p_{1},p_{2}, \cdots ,p_{n})$上的整点个数为:$gcd(p_{1},p_{2}, \cdots , p_{n})$
    • 可以枚举这个n维向量,考虑到向量在空间里面自由移动也是不同的方案:
    • $ans = \sum^{m_{1}}_{p_{1}} \sum^{m_{2}}_{p_{2}} \cdots \sum^{m_{n}}_{p_{n}}(m_{1}-p_{1})(m_{2}-p_{2}) \cdots (m_{n}-p_{n}) C^{gcd(p1,p2, \cdots ,p_{n}) - 1}_{c - 2} $
    • 枚举因子,反演得:
    • $ \sum_{d} C_{d-1}^{c-2} \sum_{g} \mu(g) \sum_{p_{1}}^{ \lfloor \frac{m_{1}}{gd} \rfloor} \sum_{p_{2}}^{ \lfloor \frac{m_{2}}{gd} \rfloor}  \cdots  \sum_{p_{n}}^{ \lfloor \frac{m_{n}}{gd} \rfloor} (m_{1}-p_{1}gd) (m_{2}-p_{2}gd) \cdots (m_{n}-p_{n}gd)  $
    • $ = \sum_{d} \sum_{g|d} C_{d-1}^{c-2} \mu(\frac{d}{g})  \sum_{p_{1}}^{\lfloor \frac{m_{1}}{d} \rfloor} \sum_{p_{2}}^{\lfloor \frac{m_{2}}{d} \rfloor} \cdots \sum_{p_{n}}^{\lfloor \frac{m_{n}}{d} \rfloor} (m_{1}-p_{1}d)(m_{2}-p_{2}d) \cdots (m_{n}-p_{n}d)$
    • 等差数列求和:
    • $ = \sum_{d} \sum_{g|d} C_{d-1}^{c-2} ( \Pi_{i=1}^{n} 2^{-1} \lfloor  \frac{m_{i}}{d} \rfloor (2m_{i} - (\lfloor \frac{m_{i}}{d} \rfloor  + 1 ) d ) )$
    • 其中2^{-1}表示2的逆元;

猜你喜欢

转载自www.cnblogs.com/Paul-Guderian/p/10376609.html