hdu6418 Rikka with Stone-Paper-Scissors 2018杭电多校第九场D题 【推公式(奇妙对称性)】

题目链接:传送门

题意:

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;
}

 

全部评论

相关推荐

感谢信收割机Rain:他昨天还和我打瓦,今天咋这样发邮件😅
点赞 评论 收藏
分享
牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
no_work_no_life:深圳,充电宝,盲猜anker
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务