【题解】暑假集训CSP提高模拟14

news/2024/11/20 22:21:48/文章来源:https://www.cnblogs.com/ywhhdjser-97/p/18345153

目录
  • Rank&挂分
  • A. BA
    • 题目内容
    • 部分分
      • 10pts
      • 10+20pts
    • 正解
      • 思路
      • 代码
  • B. BB
    • 题目内容
    • 部分分
      • 5pts
    • 正解
      • 思路
      • 代码
  • C. BC
  • D. BD

Rank&挂分

image
T4暴搜后来改了记搜,不知道哪里锅了,挂5pts。

A. BA

题目内容

现在有 \(m\) 块烙板,\(n\) 张饼,第 \(i\) 张饼需要烙 \(a_i\) 个单位时间,一张饼一个单位时刻只能在一张烙板上,问都烙熟所需最少时间。

部分分

10pts

暴力深搜,每次枚举在锅里放什么饼,然后在所有合法方案里找最优解。

10+20pts

对Subtask 2进行特判,由于饼只有一面或两面,所以优先处理两面一定更优,配合前面的10分,可以拿下30分。

正解

思路

首先由于一张饼在同一时间只能出现在一口锅里的限制(以下简称时间冲突),可知答案的下界是所有 \(a_i\)\(max\)
image
从上图可以看出,如果耗时最长的饼都不会发生时间冲突,则一定存在一种方案使得没有饼会产生时间冲突。不考虑时间冲突的因素,那么只要保证 \(m\times t\ge\sum\limits^{n}_{i=1}a_i\) 即可。这里的处理既可以二分,也可以直接求。

代码

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define ri register int
#define inf 0x3f3f3f3f
int a,b;
long long sm,ans,mx,c;
int main()
{scanf("%d%d",&a,&b);for(ri i=1;i<=a;i++){scanf("%lld",&c);mx=max(mx,c);sm+=c;}ans=sm/b;if(sm%b){ans++;}ans=max(ans,mx);printf("%lld",ans);return 0;
}

B. BB

题目内容

洛谷原题
\(n\) 个节点的有根树,其中 \(1\) 号节点为根,每个节点都有一个价格为 \(w\)
对于树上两个不同的节点 \(x,y\),若 \(x\)\(y\) 的祖先节点,则称 \(x\) 支配 \(y\)
游戏过程中,A 和 B 轮流购买树上的一个未被人购买过的节点,直到树上的 \(n\) 个节点都被 A 或 B 购买。(游戏开始前,树上的所有节点都没有被购买。)
对于一次购买,假设买方购买了 \(x\) 号节点,那么他首先要向系统支付 \(w_x\) 个游戏币。假设此时 \(x\) 支配着 \(n_1\) 个已被买方的对手购买了的节点,同时又被 \(n_2\) 个已被对手购买了的节点支配。若 \(n_1\gt n_2\),那么对手要向买方支付 \(n_1-n_2\) 个游戏币,若 \(n_1\lt n_2\),那么买方要向对手支付 \(n_2-n_1\) 个游戏币。
A 和 B 都绝顶聪明,会在游戏中采用最优策略,来赚到尽量多的游戏币。如果 A 先手,A 最终能赚到多少个游戏币?(你可以认为,游戏开始前,A 和 B 手中都有足够数量的游戏币。注意:答案可能为负数。)

部分分

5pts

树剖,不知道哪里锅了,WA,但是没TLE。

正解

思路

设 A 选择的点的点集为 U,B 选择的点的点集为 V。考虑一个点 \(n\) 对 A 的收益的贡献:如果 n 祖先有 \(p\) 个属于 V 的点,则选 \(n\) 会使 A 的收益减少 \(p\);如果 n 儿子有 \(q\) 个属于 V 的点,则选 \(n\) 会使 A 的收益增加 \(q\);总收益就是 \(q-p\)。关于这个可以对在选 \(n\) 前和选 \(n\) 后进行分讨来理解。
但是仅仅转化到此还是不好维护,我们从点集里所有的点的角度去考虑:
image
如果我们直接把祖先数和儿子数作为贡献,显然,同色的在计算时多计算的一部分会相互抵消。这个还是感性理解吧。
于是,一个点的权值被转化为儿子数减祖先数再减它本身的权值。儿子数可以类比树剖的 \(siz_x-1\) 计算,祖先数就是深度 \(dep_x-1\),两个 \(-1\) 抵消,最终的式子是 \(siz_x-dep_x-w_x\),然后贪心即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define ri register int
#define inf 0x3f3f3f3f
int a,b[200002],fa[200002],f[200002],g,dep[200002],siz[200002];
priority_queue<int>que;
long long ans;
struct node
{int h,to;
}pic[200002];
il void ndin(int x,int y)
{g++;pic[g].to=y;pic[g].h=f[x];f[x]=g;
}
void dfs(int x)
{siz[x]=1;dep[x]=dep[fa[x]]+1;for(ri i=f[x];i;i=pic[i].h){ri y=pic[i].to;if(y!=fa[x]){dfs(y);siz[x]+=siz[y];}}
}
int main()
{scanf("%d",&a);for(ri i=1;i<=a;i++){scanf("%d",&b[i]);}for(ri i=2;i<=a;i++){scanf("%d",&fa[i]);ndin(fa[i],i);}dfs(1);for(ri i=1;i<=a;i++){que.push(siz[i]-dep[i]-b[i]);}while(que.size()>1){ans+=que.top();que.pop();que.pop();}if(que.size()){ans+=que.top();que.pop();}printf("%lld",ans);return 0;
}

C. BC

->to be continue.

D. BD

->to be contniue.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778887.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

232Modbus转Profinet网关模块接液相柱塞泵与PLC通讯

本文介绍了232Modbus转Profinet网关(XD-PNR200)模块的使用步骤,包括硬件连接、软件配置和测试验证等环节,配置PLC与232Modbus转Profinet网关(XD-PNR200)IP,选功能码读写数据,分配设备名称并下载组态。测试通信后,可成功通讯。232Modbus转Profinet网关模块接液相柱塞泵…

挂载Ceph文件系统以及Ceph存储三副本特性展示

创建文件系统ceph fs volume create cephfs 挂载 CephFS 的常规先决条件 为客户端主机生成最小的 conf 文件并将其放在标准位置:mkdir -p -m 755 /etc/ceph ssh {user}@{mon-host} "sudo ceph config generate-minimal-conf" | sudo tee /etc/ceph/ceph.conf确保co…

nginx配置正向代理

1、下载源码包 # 地址http://nginx.org/download/2、下载ngx_http_proxy_connect_module补丁包 # 下载地址https://github.com/chobits/ngx_http_proxy_connect_module/archive/master.zip3、使用patch对源码包进行打补丁 # 先解压补丁包,得到的包名是ngx_http_proxy_connect_…

CSP14

暴力最高\(50\)吧,本地测试不太准跑得快的只得了\(10\)分,慢的却得了\(50\)分暴力 #include <bits/stdc++.h> #define pb push_back #define ll long long #define bs bitset<70> #define speed() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); using na…

Goby漏洞发布 | CVE-2024-38856 Apache OFbiz /ProgramExport 命令执行漏洞【已复现】

漏洞名称:Apache OFbiz /ProgramExport 命令执行漏洞(CVE-2024-38856) English Name:Apache OFbiz /ProgramExport Command Execution Vulnerability(CVE-2024-38856) CVSS core: 9.0 漏洞描述: Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、…

LLM学习笔记-位置编码篇

在Transformer模型中,位置编码(Positional Encoding)的引入是为了补充自注意力机制(Self-Attention)在捕捉序列位置信息方面的不足。自注意力机制是Transformer的核心,但它对输入序列的位置信息并不敏感。具体来说,Transformer模型对输入序列中的每个元素进行处理时是并…

Profinet转Modbus网关运用在DCS系统中与变频器的通讯案例

在DCS(分散控制系统)系统中,Profinet转Modbus网关(XD-MDPN100)的应用是一个典型的工业自动化通讯案例,通过Profinet转Modbus网关(XD-MDPN100)将Profinet协议转换为Modbus协议,从而实现DCS系统与变频器之间的无缝通讯。一、案例背景 随着工业自动化程度的不断提高,DCS…

OpenAI 重大人事变动,联创加入死敌;阿里视频框架 Tora 操控物体运动轨迹丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

以“小”见“大” 打开“折叠”的世界

「 玩出个性,玩出潮流。」他来了!它来了! 昨晚,在年轻人的聚集地——B站,易烊千玺携手nova Flip亮相新生之夜。 带着“新一代”和“潮流”两个标签,这一款小折叠,为华为的折叠屏手机带来更多的可能性,也将激活整个折叠屏手机市场。 待激活的小折叠 经过几年的低迷期之后…

传奇单机版:复古三职业+无需虚拟机一键安装

今天给大家带来一款单机游戏的架设:传奇单机版。沉默版本 三职业 数值不变态 ,没有花里胡哨的东西(比如切割,生肖,时装等功能),客户端为16周年客户端 。另外:本人承接各种游戏架设(单机+联网) 本人为了学习和研究软件内含的设计思想和原理,带了单机架设教程,不适用…

被怼了:acks=all消息也会丢失?

消息队列是面试中一定会被问到的技术模块,虽然它在面试题占比不及并发编程和数据库,但也属于面试中的关键性问题。所以今天我们就来看一道,MQ 中高频,但可能会打破你以往认知的一道面试题。所谓的关键问题指的是这道面试题会影响你整体面试结果。我们在面试消息队列(Messa…

GaussDB安装

环境准备 1、关闭防火墙 systemctl stop firewalld 2、关闭selinux 临时禁用:setenforce 0 永久关闭: vi /etc/selinux/configSELINUX=disabled reboot 3、修改系统环境字符集 echo $LANG export LANG=en_US.UTF-8 永久修改 vi /etc/profile 添加 export LANG=en_US.UTF-8 so…