题目链接:传送门

题意:

Rikka 和 Yuta有剪刀石头布三种卡片,他们两个卡片的数量相同, 只是每个种类的卡片可能不同.

现在给你 a b c 代表Rikka的剪刀 石头 布三个种类卡片的数量

而aa  bb  cc 则代表Yut卡片的数量

每个回合双方各出一张牌,出完这张牌后舍弃掉,赢的人得加一分,输的人减一分,平局不增不减。

Yuta随机出牌

求Rikka的最大预期得分。

题解: 吉老师说这道题是通过美妙的对称性来出题的,被这道题折磨的我,最后还是队友靠看样例来推导的公式过题。

公式为:(a * (bb - cc) + b * (cc - aa) + c * (aa - bb) )/ (a + b + c)  注意分子可能是负数 取gcd的时候要变号

通过数学归纳法得到的, 我也不会,数学渣的我

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define ll long long

using namespace std;

ll gcd(ll a, ll b) {
	if(a < 0) {
		a = -a;
	}
	if(b == 0) {
		return a;
	}
	return gcd(b, a%b);
}

int main() {
	int t;
	scanf("%d", &t);
	while(t--) {
		ll a, b, c;
		ll aa, bb, cc;
		scanf("%lld%lld%lld%lld%lld%lld", &a, &b, &c, &aa, &bb, &cc);
		ll ans = a*(bb-cc) + b*(cc-aa) + c*(aa-bb);
		ll sum = a+b+c;
		if(ans%sum == 0) {
			printf("%lld\n",ans/sum);
		} else {
			ll temp = gcd(ans, sum);
			printf("%lld/%lld\n",ans/temp, sum/temp);
		}
	}
	return 0;
}