AtCoder AT_abc409_c [ABC409C] Equilateral Triangle
题目大意
一个周长为 L L L 的圆环上有 N N N 个点,问其中有多少个三元组可以构成等边三角形。
思路
首先,我们根据题意把所有点的位置算出来。
然后,由于一个位置上可能有多个点,再用 c n t i cnt_i cnti 表示位置 i i i 上点的个数。
接下来,统计答案。如果 L L L 不是 3 3 3 的倍数,那么一定没有答案(输出 0 0 0)。否则,枚举三角形的一个顶点,然后算出来其他顶点的位置,利用加乘原理求解。
不过,如果直接这样做的话答案是正确答案的三倍,因为三角形有三个顶点,我们在每个顶点都算了一遍。所以最后记得输出 a n s ÷ 3 ans\div3 ans÷3 的值。
代码
见评测记录。