Contest2659 - 2021ACM俱乐部后备营个人训练赛第5场

本文介绍了2021年ACM俱乐部后备营个人训练赛第5场比赛的题目,包括小李数星星、小李打台球、小李发奖金等题目的解题思路与代码实现。对于小李数星星,通过计算X轴和Y轴坐标的差值得到正方形面积;小李打台球需模拟得分过程,考虑红球规则;小李发奖金使用排序和差值计算避免高时间复杂度。
摘要由CSDN通过智能技术生成

Contest2659 - 2021ACM俱乐部后备营个人训练赛第5场

A、小李数星星

思路:

找到X轴上最大的一个坐标跟最小的一个坐标,然后找到Y轴最大的一个坐标跟最小的一个坐标,分别计算X轴,Y轴最大坐标和最小坐标的差值,比较两个差值的大小,因为是正方形,所以用较长的计算面积。由于数据较大,开 long long

代码:

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
   
    long long n,a,b,ans;
    long long x[100000],y[100000],i=-1,j=-1;
    cin>>n;
    n++;
    while(--n)
    {
   
        cin>>a>>b;
        y[++i]=a;
        x[++j]=b;
    }
    sort(x,x+j+1);
    sort(y,y+i+1);
    long long a1=x[j]-x[0];
    long long a2=y[i]-y[0];
    if(a1>=a2)
        ans=a1*a1;
    else
        ans=a2*a2;
    cout<<ans;
    return 0;
}

B、小李打台球

思路:

注意理解规则之间的潜在关系,尤其是红球,当规则二只有很多红球,由于彩球(不包括红球),所有,无论只有多少红球,都只有1分。模拟取球得分的过程,如果有红色球,那么红色的个数乘以有其他颜色球的最高分得出结果,再把除红色球外的其他颜色球按球的数量乘以分值累加就可以完成

代码:

#include <bits
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值