首页 > 其他分享 >【THUPC 2024 初赛】 E 转化

【THUPC 2024 初赛】 E 转化

时间:2023-12-20 16:55:35浏览次数:40  
标签:long THUPC int ll tot 2024 maxn 初赛 sum

【THUPC 2024 初赛】 转化

我都能做出来,那就是大水题了。

思路

首先我们要确定最大可以变色的球的数量 \(tot\)。

有如下两个贪心步骤:

    1. 所有颜色使用分裂操作,并更新 \(a_i\)。

​ 此时的有 \(tot=\sum_{i=1}^n \min(a_i,b_i)\)(需要更新 \(a_i,b_i\))。

    1. 若 \(tot\) 大于 \(0\),给 \(b_i\) 和 \(c_i\) 不为 \(0\) 的点,分配一个球,执行完分裂 \(c_i\) 次后,更新 \(a_i,b_i\),更新 \(tot\)。

这两个贪心步骤可以保证 \(tot\) 最大。

对于 1 如果一个点有球,那么从别处变色球来分裂肯定不优;对于 2,不难发现,执行完后 \(tot\) 肯定不降。

对于每一个颜色 \(i\),如果此时 \(tot\) 大于 \(0\) 且 \(c_i\) 大于 \(0\),那么 \(ans_i=tot+a_i+c_i\)。

如果 \(tot\) 等于 \(0\),那么 \(ans_i=a_i\)。

对于全局最大值,在执行完上述操作中的 \(c_i\),选择大于 \(0\) 且最大的 \(tot\) 个,设这些 \(c_i\) 的和为 \(sum\)。

全局最大答案为:\(ans=\sum\limits_{i=1}^n a_i+sum+tot\)。

时间复杂度 \(O(n)\)。

CODE

#include<bits/stdc++.h>
using namespace std;

const int maxn=5e5+5;

#define int long long
#define ll long long

struct node
{
    int c,id;
}edge[maxn];

ll n,fs,ct;
ll a[maxn],b[maxn],c[maxn];

bool cmp(ll a,ll b){return a>b;}

signed main()
{
    scanf("%lld",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
    for(int i=1;i<=n;i++) scanf("%lld",&b[i]);
    for(int i=1;i<=n;i++) scanf("%lld",&c[i]);
    for(int i=1;i<=n;i++)
    {
        if(a[i]==0) continue;
        a[i]+=c[i];
        c[i]=0;
        ll t=min(a[i],b[i]);
        fs+=t;
        b[i]-=t;
        a[i]-=t;
    }
    for(int i=1;i<=n;i++)
    {
        if(b[i]&&c[i]&&fs)
        {
            fs--;
            a[i]=1+c[i];
            c[i]=0;
            ll t=min(b[i],a[i]);
            b[i]-=t;
            a[i]-=t;
            fs+=t;
        }
    }

    ll totans=0;
    for(int i=1;i<=n;i++)
    {
        totans+=a[i];
        ll t=fs+a[i];
        if(t) t+=c[i];
        printf("%lld ",t);
    }
    sort(c+1,c+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        if(c[i]&&fs)
        {
            fs--;
            totans+=1+c[i];
        }
    }

    printf("\n%lld",totans+fs);
}

赛时代码比较艹,所以读者自己写一次的好。

标签:long,THUPC,int,ll,tot,2024,maxn,初赛,sum
From: https://www.cnblogs.com/binbinbjl/p/17916958.html

相关文章

  • 2024年安防视频监控发展趋势预测及LiteCVR视频技术应用
    随着科技的快速发展,安防视频技术已经成为了各个领域中不可或缺的一部分。为了更好地应对各种安全挑战,安防视频技术也在不断地升级和改进。本文将预测2024年安防视频技术的几个发展趋势。首先,高清化将是未来安防视频技术的一个重要方向。随着人们对安全需求的不断提高,对视频清晰度......
  • 2023-2024第一学期第十周助教总结
    第十个教学周已经结束了,现在让我们回顾一下第十周同学们的学习情况,在总结中反思问题,在总结中提高能力。本次总结所属课程2023-2024-1-计算机基础与程序设计本次作业要求2023-2024-1计算机基础与程序设计第十周作业本次作业提交情况2023-2024-1计算机基础与程序设计......
  • 2023-2024第一学期第十二周助教总结
    本次总结所属课程2023-2024第一学期计算机基础与程序设计本次作业要求作业要求作业提交情况提交情况一、作业提交情况:本周大部分同学可以做到按时提交作业,只有一小部分同学在作业截止时间内未能按时提交,希望这些同学可以重视每老师布置的作业,认真完成并按时提......
  • 2024年软考报名条件有哪些?有学历限制吗?
    不少考生开始准备报名2024年软件水平考试,那么报名软考有没有学历、专业以及工作经验等方面的限制呢?今天小编就给大家详细来介绍一下。 软考报名条件如下: 1、凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况,报名参加相应专业类......
  • 2023年国家基地“楚慧杯”网络安全实践能力竞赛初赛-Crypto+Misc WP
    Miscez_zip题目4096个压缩包套娃我的解答:写个脚本直接解压即可:importzipfilename='附件路径\\题目附件.zip'foriinrange(4097):f=zipfile.ZipFile(name,'r')f.extractall(pwd=name[:-4].encode())name=f.filelist[0].filenameprint(nam......
  • 《产品平台和CBB管理高级实务》公开课(深圳2024年1月12-13日)
    【课程收益】解决的关键问题:在研发体系建设、研发管理,以及产品开发过程中,研发管理人员、系统工程师、项目经理等通常会面临以下问题,希望通过本课程的学习,能够为以上人员提供具体的解决思路和应对措施。①.   为了满足不同用户的需求,长期积累下来的产品型号和物料种类繁......
  • [THUPC 2024 初赛] 三步棋
    鸣谢cinccout。赛时两次看出了我的错误/bx。闲话:在我看过的所有人的做题过程中,大家都不约而同的把棋子数量相同时答案相同当作了第一发(。但是很可惜,这个结论是错误的。样例已经给出了当棋子数量为\(2\)的答案,在此我们略去讨论。对于棋子数量为\(1\)答案也很明显是后手......
  • 重磅首发|2024音视频技术发展报告
    //11月24日,在LiveVideoStackCon2023深圳站大会上,我们与腾讯云音视频联合首发《2024音视频技术发展报告》。报告通过300+音视频开发者调研,40+专家一线访谈,下沉8大细分技术领域进行全面解读,涵盖音视频编解码/AI编码/多媒体处理框架/媒体传输协议/超低延迟技术/虚拟现实/AIGC/出海等......
  • 2024 20231322《计算机基础与程序设计》第十二周学习总结
    作业信息|2022-2023-1-计算机基础与程序设计)||--|--||2022-2023-1计算机基础与程序设计第周作业||这个作业的目标|总结本周学习成果及疑问||作业正文|()|教材学习内容总结本周主要学习了数组和指针的相关内容教材学习中的问题和解决过程问题1:是否所有指针都要加*,包括函......
  • 2023-2024-5 20232419《网络空间安全导论》第6章预习总结
    应用安全基础应用安全概述总结:应用安全覆盖了生活的方方面面。身份认证与信任管理隐私保护云计算和安全区块链和安全人工智能和安全基于AI的学习思考:又多了一堆不知道哪来的名词,也没有前文解释很不方便。......