[ TCO2016 Round 2B DIV1 Easy ] TriangleTriples

题意:给出\(a,b,c,1<=a,b,c<=10^9\),求所有的满足\(1 \leq x \leq a,1 \leq y \leq b,1 \leq z \leq c\)且由\(x,y,z\)为三边长能组成三角形的方案数。(\(a,b,c,x,y,z\)均为整数) 题解:用容斥做这道题目会比较简单。首先设\(a \leq b \leq c\)。考虑容斥,答案即\(abc\)减去所有\(x \geq y+z,y \geq x+z,z \geq x+y\)的方案数。由于\(x \geq y+z,y \geq x+z,z \geq x+y\)是独立的,所以可以分别计算。 考虑\(x \geq y+z\),由于\(y+z \leq a\),那么显然有\begin{aligned}1 \leq x \leq a \\ 1 \leq y \leq a \\ 1 \leq z \leq a \end{aligned}答案显然为\(\sum_{i=1}^{a-1}{\frac{i(i+1)}{2}}=\frac{a(a+1)(a-1)}{6}=C_{a+1}^{3}\),后面的组合数可以理解为在\(0…a\)中选出三个点\(x_0,x_1,x_2,0 \leq x_0<x_1<x_2 \leq…