前置芝士的光速幂技巧。
本题解不是正解,和正解唯一的差别在于对幂的处理。
我们能够发现有:
\[F(n,m,k)=\frac 1 n \binom {n+m-1} m
\]
证明见这里。
然后我们开始推柿子:
\[\prod_{i=1}^n\prod_{j=1}^m\prod_{x=0}^k(\frac 1 i \binom {i+j-1} j )^{[\gcd(i,j)=1]}
\]
\[(\prod_{i=1}^n\prod_{j=1}^m(\frac {(i+j-1)!} {i!j!})^{[\gcd(i,j)=1]})^{k+1}
\]
此时我们可以把答案拆成两部分:
\[\prod_{i=1}^n\prod_{j=1}^m((i+j-1)!)^{[\gcd(i,j)=1]}
\]
\[\prod_{i=1}^n\prod_{j=1}^m(i!j!)^{[\gcd(i,j)=1]}
\]
1
\[\prod_{i=1}^n\prod_{j=1}^m((i+j-1)!)^{\sum_{d|i,d|j}\mu(d)}
\]
\[\prod_{d=1}^n\prod_{i=1}^{\lfloor \frac n d \rfloor}\prod_{j=1}^{\lfloor \frac m d \rfloor} (di+dj-1)!^{\mu(d)}
\]
\[\prod_{d=1}^n\prod_{i=1}^{\lfloor \frac n d \rfloor}\prod_{j=1}^{\lfloor \frac m d \rfloor} \frac {(d(i+j))!^{\mu(d)}} {(d(i+j))^{\mu(d)}}
\]
1.1
\[\prod_{d=1}^n\prod_{i=1}^{\lfloor \frac n d \rfloor}\prod_{j=1}^{\lfloor \frac m d \rfloor} {(d(i+j))!^{\mu(d)}}
\]
真正的毒瘤。
\[\prod_{d=1}^n\prod_{k=1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}}(dk)!^{num_{{\lfloor \frac n d \rfloor},{\lfloor \frac m d \rfloor}}[k]\mu(d)}
\]
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac n d \rfloor}(dk)!^{(k-1)\mu(d)} \times\prod_{k={\lfloor \frac n d \rfloor}+1}^{{\lfloor \frac m d \rfloor}} (dk)!^{{\lfloor \frac n d \rfloor}\mu(d)} \times \prod_{k={\lfloor \frac m d \rfloor}+1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}} (dk)!^{({\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}-k+1)\mu(d)}
\]
1.1.1
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac n d \rfloor} (dk)!^{(k-1)\mu(d)}
\]
\[\prod_{d=1}^nd!^{\sum_{k|d} k \mu(\frac d k)} \div \prod_{d=1}^n d!^{\sum_{k|d}\mu(\frac d k)}
\]
\[\prod_{d=1}^nd!^{\varphi(d)}
\]
有趣的一点是,这玩意儿和 \(\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac n d \rfloor} (dk)!^{k\mu(d)}\) 是一个东西。以及这玩意儿和后面的 \(1.1.3.1\) 是一样的,所以可以不用推。。。
1.1.2
\[\prod_{d=1}^n\prod_{k={\lfloor \frac n d \rfloor}+1}^{\lfloor \frac m d \rfloor} (dk)^{{\lfloor \frac n d \rfloor}\mu(d)}
\]
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)^{{\lfloor \frac n d \rfloor}\mu(d)} \div \prod_{k=1}^{\lfloor \frac n d \rfloor} (dk)!^{{\lfloor \frac n d \rfloor}\mu(d)}
\]
右边:
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac n d \rfloor} (dk)!^{\mu(d){\lfloor \frac n d \rfloor}}
\]
\[\prod_{d=1}^n(\prod_{k=1}^{\lfloor \frac n d \rfloor} (dk)!^{\mu(d)})^{\lfloor \frac n d \rfloor}
\]
设:
\[f_1(d,n)=\prod_{k=1}^n(dk)!^{\mu(d)}
\]
可以发现:
\[f_1(d,n)=f_1(d,n-1) \times (dn)!^{\mu(d)}
\]
\((dn)!^{mu(d)}\) 用光速幂搞定,(这里的 \(dn\) 一定不大于数据范围)就可以 \(O(n\log n)\) 递推 \(f_1\) 了。
这一部分最终能够推得:
\[\prod_{d=1}^n f_1(d,{\lfloor \frac n d \rfloor})^{\lfloor \frac n d \rfloor}
\]
对 \(f_1\) 在第二维度上做前缀积即可整除分块带走。
左边的和右边的是一样的,就不再论述了。
1.1.3
\[\prod_{d=1}^n\prod_{k={\lfloor \frac m d \rfloor}+1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}} (dk)!^{({\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}-k+1)\mu(d)}
\]
它 是 毒 瘤
首先拆一下:
\[\prod_{d=1}^n((\prod_{k=1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}} (dk)!^{({\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor})\mu(d)} \div \prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)!^{({\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor})\mu(d)})
\]
\[\div (\prod_{k=1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}} (dk)!^{k\mu(d)} \div \prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)!^{k\mu(d)})
\]
\[\times (\prod_{k=1}^{{\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor}} (dk)!^{\mu(d)} \div \prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)!^{\mu(d)}))
\]
后面四个好像容易一些,先搞后面四个。
1.1.3.1
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac m d \rfloor}(dk)!^{k\mu(d)}
\]
设:
\[f_2(d,n)=\prod_{k=1}^n(dk)!^{k\mu(d)}
\]
明显有:
\[f_2(d,n)=f_2(d,n-1) \times (dn)!^{n\mu(d)}
\]
和 \(f_1\) 一样即可以 \(O(n\log n)\) 处理这玩意儿。
1.1.3.2
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)!^{\mu(d)}
\]
你发现这玩意儿就是 \(f_1\),所以可以直接草了。
1.1.3.3
\[\prod_{d=1}^n\prod_{k=1}^{\lfloor \frac m d \rfloor} (dk)!^{({\lfloor \frac n d \rfloor}+{\lfloor \frac m d \rfloor})\mu(d)}
\]
这玩意儿好像就只是 \(f_1\) 加上了一个幂?用一个光速幂就可以带走了。
1.2
\[\prod_{d=1}^n\prod_{i=1}^{\lfloor \frac n d \rfloor}\prod_{j=1}^{\lfloor \frac m d \rfloor} {(d(i+j))^{\mu(d)}}
\]
这一部分几乎和 \(1.1\) 是相同的,所以不再论述,将 \((dk)!\) 换成 \((dk)\) 即可。
2
\[\prod_{i=1}^n\prod_{j=1}^m(i!j!)^{\sum_{d|i,d|j} \mu(d)}
\]
其实这一部分明显比前面简单得多,以至于我前面刚写完就以为整个题解写完了(
\[\prod_{d=1}^n\prod_{i=1}^{\lfloor \frac n d \rfloor}\prod_{i=1}^{\lfloor \frac m d \rfloor}(di)!^{\mu(d)}(dj)!^{\mu(d)}
\]
\[\prod_{d=1}^n(\prod_{i=1}^{\lfloor \frac n d \rfloor}(di)!^{\mu(d){\lfloor \frac m d \rfloor}} \times \prod_{i=1}^{\lfloor \frac m d \rfloor}(dj)!^{\mu(d){\lfloor \frac n d \rfloor}})
\]
\[\prod_{d=1}^n(\prod_{i=1}^{\lfloor \frac n d \rfloor} (di)!^{\mu(d)})^{\lfloor \frac m d \rfloor} \times (\prod_{d=1}^n \prod_{j=1}^{\lfloor \frac m d \rfloor} (dj)!^{\mu(d)})^{\lfloor \frac n d \rfloor}
\]
我们发现这玩意儿就是 \(f_3\),直接光速幂即可。
虽然复杂度是 \(O(n^{\frac 5 4}\log n+T\sqrt n)\) 的,但是常数巨大。。。
以及,光速幂空间过大,所以可能需要 \(\rm vector\) 来实现,以及离线卡常。
来想想需要对哪些东西预处理光速幂
\(f_1\)和 \(1.2\) 中的 “\(f_1\)”。长度分别为 \(O(n\log n)\) 和 \(O(n\log n)\)。
对二者同时光速幂。注意光速幂离线后一共有 \(O(n\log n)\) 个底数,对其分块后可以卡进 cache,对上面的二者同步预处理光速幂即可。
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 在Excel VBA中使用SQL到底优势在哪儿
小爬在之前的博文中多次提到,可以在VBA中写SQL来操作Excel文件,实现各类数据处理和分析需求.那么,你可能有这样的疑问:Excel原生的VBA,数据透视表,数据分析功能不够吗,为啥一定要用SQL ...
- MySQL里的那些日志们
该系列博文会告诉你如何从入门到进阶,从sql基本的使用方法,从MySQL执行引擎再到索引.事务等知识,一步步地学习MySQL相关技术的实现原理,更好地了解如何基于这些知识来优化sql,减少SQL执行时 ...
- kaptcha验证码参数设置
Constant 描述 默认值 kaptcha.border 图片边框,合法值:yes , no yes kaptcha.border.color 边框颜色,合法值: r,g,b (and optio ...
- 如何基于gRPC沟通微服务框架
本文我们来讲解一下如何使用 gRPC构建微服务,gRPC是一个开源框架,可用于构建可扩展且高性能的微服务并创建服务之间的通信. 背景 随着企业越来越多地转向微服务,对构建这些微服务的低延迟和可扩展框架 ...
- Ubuntu20.04 Focal Cloudimage扩容以及KVM安装的问题记录
运行Ubuntu20.04的KVM虚机遇到一些问题, 单独总结一下 镜像扩容 不能用virt-resize --expand /dev/sda1 old.qcow2 new.qcow2这样的命令, 这 ...
- jmeter & 性能测试:从0到实战(实操易用、面试造火箭、升职加薪必备)
[性能基础] 性能测试概念.术语:https://www.cnblogs.com/uncleyong/p/10706519.html 性能测试流程(新):https://www.cnblogs.com ...
- kali linux 中python2不带pip的解决方法
在使用kali2020版本时,发现pip只能安装python3的模块,没办法安装python2模块,但是我有需要用到python2来运行脚本,在此贴出解决办法 https://bootstrap.py ...
- [Matlab]二维统计分析图实例
常见的二维统计分析图形: bar(x,y,选项) 条形图 stairs(x,y,选项) 阶梯图 stem(x,y,选项) 杆图 fill(x1,y1,选项1,x2,y2,选项2,--) 填充图 实例: ...
- 金融数据分析还能这样做?快试试这个BI工具小白也能学会!
说起银行.保险.股票投资等这些金融行业,大多数人都认为它们都是依靠数据驱动的企业,毕竟大数据的诞生本来就是为了金融信息流通而服务的,但是事实真的是这样吗? 事实并非如此,真正在金融行业做数据分析的人, ...
- 入手这个商业智能工具,建设自助式BI平台轻松搞定
数据的重要性无需多言,可数据的获取和使用却依然不是一件容易的事.尤其是对企业中不掌握数据的广大业务人员,对数据又爱又恨,对掌握数据对IT部门,更是恨多爱少,为了拿到数据分析数据,不断的申请.催促.沟 ...