P14983 [USACO26JAN1] Hoof, Paper, Scissors Triples P

题目描述

你可能听说过游戏“石头、布、剪刀”。奶牛们喜欢玩一个类似的游戏,他们称之为“蹄子、布、剪刀”。 “蹄子、布、剪刀”的规则很简单。两头奶牛相互对战。它们都数到三,然后同时做出一个手势,代表蹄子、布或剪刀。蹄子赢剪刀(因为蹄子可以砸碎剪刀),剪刀赢布(因为剪刀可以剪布),布赢蹄子(因为蹄子可能被布划伤)。例如,如果第一头奶牛做出“蹄子”手势,第二头奶牛做出“布”手势,那么第二头奶牛获胜。当然,如果两头奶牛做出相同的手势,也可能平局。 现在有 $N$ 头($3\le N\le 2\cdot 10^5$)奶牛想玩蹄子布剪刀游戏,它们各自独立地有一个从某个固定分布中抽取的策略。具体来说,第 $i$ 头奶牛的策略是分别以概率 $\left(\frac{h_i}{h_i+p_i+s_i}, \frac{p_i}{h_i+p_i+s_i}, \frac{s_i}{h_i+p_i+s_i} \right)$ 出蹄子、布或剪刀。 有多少个不同的奶牛三元组 $(A,B,C)$,使得 $A$ 平均赢 $B$,$B$ 平均赢 $C$,且 $C$ 平均赢 $A$?如果两个三元组通过循环移位相等,我们视为同一个三元组。

输入格式

第一行包含 $T$($1\le T\le 5\cdot 10^4$),表示独立测试的数量。每个测试按以下格式指定: 第一行包含 $N$。 接下来的 $N$ 行,每行包含三个非负整数 $h_i$、$p_i$、$s_i$($0\le h_i,p_i,s_i\le 10^9, h_i+p_i+s_i>0$)。 保证所有测试的 $N$ 之和不超过 $3\cdot 10^5$。

输出格式

输出三元组的数量。 **注意:本题涉及的大整数可能需要使用 64 位整数数据类型(例如,C/C++ 中的 "long long")。**

说明/提示

对于第一个测试用例,有两个三元组:$(1, 3, 4)$ 和 $(2, 3, 4)$。 --- - 输入 $2$-$3$:$N\le 10$ - 输入 $4$-$9$:$N \le 7500$,所有测试的 $N$ 之和不超过 $10^4$ - 输入 $10$-$21$:无额外约束。 翻译由 DeepSeek V3 完成