LA7147 World Cup 数学

2024-06-14 08:58
文章标签 la7147 world cup 数学

本文主要是介绍LA7147 World Cup 数学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接

题意:给定样例数T

            给定球队数n,晋级球队数m

            给定A,B,C(分别代表获胜、平局、失利获得的分数)

            分别求不能晋级的可获得的最大得分,能晋级的可获得的最小得分。

思路:考虑不能晋级的可获得的最大分的情况,(1) B>=max(A,C) 那么Max=(n-1)*B;  (2) B<max(A,C),那么首先我们要让前(m+1)队甩

开后面的队伍,即Max初始为(n-m-1)*max(A,C);接下来前(m+1)个队都要进行m场比赛,为使不能晋级的可获得最大的分,则这(m+1)支队

要尽可能平均,即赢一场就要输一场,设当前阶段一支队赢了x场,那么对于每支队伍在该阶段可得的分为Ax+(m-2x)B+Cx,0<=x<=m/2;

若A+C>=2B时,x取m/2;A+C<2B时,x取0。当m为奇数的时候需要在之前计算该阶段分数特殊处理下,即Max+=max(B,min(A,C)),这是因

为此时不能保证赢一场的时候输一场,所以对于不能晋级的可能通过一场失利而导致不能晋级,要取min(A,C),但可以是平局(即第m+1

支队和第m支分数一样),所以特判累加的是max(B,min(A,C))。能晋级的可获得最小得分的情况也可以类似推出,考虑后(n-m+1)支队

伍,特判累加的min(B,max(A,C))。详见代码:

/*********************************************************file name: LA7147.cppauthor : kereocreate time:  2015年04月30日 星期四 16时41分22秒
*********************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<stack>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
const int sigma_size=26;
const int N=100+50;
const int MAXN=100000+50;
const int inf=0x3fffffff;
const double eps=1e-8;
const int mod=1000000000+7;
#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define PII pair<int, int>
#define mk(x,y) make_pair((x),(y))
ll n,m,A,B,C;
int main(){//freopen("in.txt","r",stdin);int T,kase=0;scanf("%d",&T);while(T--){scanf("%lld%lld",&n,&m);scanf("%lld%lld%lld",&A,&B,&C);ll ans1,ans2;if(B>=max(A,C))ans1=(n-1)*B;else{ans1=(n-m-1)*max(A,C);int k=m;if(k%2 == 1){k--;ans1+=max(B,min(A,C));}if(A+C>=2*B)ans1+=(A+C-2*B)*k/2+B*k;elseans1+=B*k;}if(B<=min(A,C))ans2=(n-1)*B;else{ans2=(m-1)*min(A,C);int k=n-m;if(k%2 == 1){k--;ans2+=min(B,max(A,C));}if(A+C>=2*B)ans2+=B*k;elseans2+=(A+C-2*B)*k/2+B*k;}printf("Case #%d: %lld %lld\n",++kase,ans1,ans2);}return 0;
}



这篇关于LA7147 World Cup 数学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059952

相关文章

OSG数学基础:坐标系变换

三维实体对象需要经过一系列的坐标变换才能正确、真实地显示在屏幕上。在一个场景中,当读者对场景中的物体进行各种变换及相关操作时,坐标系变换是非常频繁的。坐标系变换通常包括:世界坐标系-物体坐标系变换、物体坐标系-世界坐标系变换和世界坐标系-屏幕坐标系变换(一个二维平面坐标系,即显示器平面,是非常标准的笛卡尔坐标系的第一象限区域)。 世界坐标系-物体坐标系变换 它描述的问题主要是关于物体本身的

OSG数学基础:坐标系统

坐标系是一个精确定位对象位置的框架,所有的图形变换都是基于一定的坐标系进行的。三维坐标系总体上可以分为两大类:左手坐标系和右手坐标系。常用的坐标系:世界坐标系、物体坐标系和摄像机坐标系。 世界坐标系 世界坐标系是一个特殊的坐标系,它建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用世界坐标系来描述其他坐标系的位置,而不能用更大的、外部的坐标系来描述世界坐标系。世界坐标系也被广泛地

2023-2024 学年第二学期小学数学六年级期末质量检测模拟(制作:王胤皓)(90分钟)

word效果预览: 一、我会填 1. 1.\hspace{0.5em} 1. 一个多位数,亿位上是次小的素数,千位上是最小的质数的立方,十万位是 10 10 10 和 15 15 15 的最大公约数,万位是最小的合数,十位上的数既不是质数也不是合数,这个数是 ( \hspace{4em} ),约等于 ( \hspace{1em} ) 万 2. 2.\hspace{0.5em} 2.

Program-of-Thoughts(PoT):结合Python工具和CoT提升大语言模型数学推理能力

Program of Thoughts Prompting:Disentangling Computation from Reasoning for Numerical Reasoning Tasks github:https://github.com/wenhuchen/Program-of-Thoughts 一、动机 数学运算和金融方面都涉及算术推理。先前方法采用监督训练的形式,但这种方

【数学】100332. 包含所有 1 的最小矩形面积 II

本文涉及知识点 数学 LeetCode100332. 包含所有 1 的最小矩形面积 II 给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形,并且满足 grid 中所有的 1 都在这些矩形的内部。 返回这些矩形面积之和的 最小 可能值。 注意,这些矩形可以相接。 示例 1: 输入: grid = [[1,0,1],[1,1,1]]

组合数学、圆排列、离散数学多重集合笔记

自用 如果能帮到您,那也值得高兴 知识点 离散数学经典题目 多重集合组合 补充容斥原理公式 隔板法题目 全排列题目:

AJAX:如何编写一个关于AJAX的Hello World?(ajax发送异步请求(四步操作))

用到的一个Servlet类: package cn.edu.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;impor

oracle学习之第一个存储过程:打印Hello World

数据库对象:表、视图、索引、序列、同义词、存储过程、存储函数 存储过程:指的是存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值(存储函数可以,但是存储过程不行) --第一个存储过程:打印Hello World/*调用存储过程2种方式:1、exec sayhellow

在Mac OS上使用Visual Studio Code创建C++ Qt的Hello World应用

引言 Qt是一个跨平台的应用程序和用户界面框架,而Visual Studio Code是一个功能强大的编辑器,两者结合可以极大地提升开发效率。本文将指导你在Mac OS上使用Visual Studio Code创建一个简单的Qt 'Hello World'窗口应用。 环境准备 确保你的MacBook OS运行最新的操作系统。安装Homebrew,Mac OS的包管理器。通过Homebrew安装

SpringBoot (一) :入门篇 Hello World

什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 SpringBoot有什么