1011. World Cup Betting (20)

本文介绍了一种解决PAT-A 1011问题的方法,该问题是关于赛事投注策略的选择。通过定义结构体来存储赔率,并使用sort()函数进行排序,最终确定了最大盈利方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 原题: https://www.patest.cn/contests/pat-a-practise/1011

2. 思路

题意是给出三场比赛的胜负平的赔率(题目给出的是1赔几)
投入2块(即两倍注),求出最大赢利。
基本的I/O问题。有很多方法,数组,模板STL都可以。
我定义了一个结构体。
注意:最后的结果两位小数,四舍五入。

3. 源码(已AC)

#include<iostream>
#include<algorithm>	//sort()
#include<iomanip>	//控制输出流
using namespace std;

struct Node	//结构体,保存每场比赛的赔率。
{
	int pos;	//表示0,1,2中的一个。
	double odd;	//赔率
	bool operator<(const Node &a) const	//重载比较运算符
	{
		return odd > a.odd;	//降序
	}
};

/*
思路:题意是给出三场比赛的胜负平的赔率(题目给出的是1赔几)
投入2块(即两倍注),求出最大赢利。
基本的I/O问题。有很多方法,数组,模板STL都可以。
我定义了一个结构体。
注意:最后的结果两位小数,四舍五入。
*/
int main()
{
	//freopen("in.txt", "r", stdin);
	Node tem[3];
	Node result[3];	//保存每场比赛的最大赔率;
	char ch[3] = {'W', 'T', 'L'};	//与结构中的pos建立映射关系;

	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j < 3; j++)
		{
			cin >> tem[j].odd;
			tem[j].pos = j;
		}

		sort(tem, tem+3);
		result[i].odd = tem[2].odd;	//保存结果
		result[i].pos = tem[2].pos;
	}

	double profit = 1.3;	//此处对公式进行了简化,下同
	for(int i = 0; i < 3; i++)
	{
		cout << ch[result[i].pos] << ' ';
		profit *= result[i].odd;
	}
	cout << fixed << setprecision(2)
		<< profit + 0.001 - 2 <<endl;	//cout四舍五入是取最近的偶数,加0.001校正

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值