The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力)
传送门: https://nanti.jisuanke.com/t/41400 给你三个数组a,b,c,要你求有多少个三元组(i,j,k),使得 \[ \begin{array}{l}{\left|A_{i}-B_{j}\right| \leq C_{k}, \text { and }} \\ {\left|B_{j}-C_{k}\right| \leq A_{i}, \text { and }} \\ {\left|A_{i}-C_{k}\right| \leq B_{j}}\end{array} \] 上面的不等式经过化简,我们可以得到 我们需要求有多少个三元组,使得 \(A_i,B_j,C_k\) 可以组成一个三角形 这样组成三角形的题目类似于HDU4609 ( https://www.cnblogs.com/buerdepepeqi/p/11236100.html ) 但是不同的是 我们需要从三个数组中选择 所以这里就涉及到了选择重复的问题,我们考虑去重 假设拿a+b做一遍卷积,得到长度为a+b的木棍的数量, 我们假设 c是三角形的最长边,那么a,b,c三根木棍不能组成三角形的情况就是c的长度大于a+b的数量 我们枚举(a+b)这个长度,那么不能组成三角形的数量就是 可以组成当前长度的(a,b)的方案数*大于这个长度的c的数量 所以按照这样来说 我们就可以得到 做三遍卷积