P10277 [USACO24OPEN] Bessies Interview S 题解

P10277 [USACO24OPEN] Bessie's Interview S 题解

题目传送门

我的博客

思路

首先这道题第一问非常好做。只需要按照题目描述的那样模拟即可。即用优先队列存每个奶牛的面试时间,每次取出最小的时间,加入下一只奶牛。最后输出q.top()即可。伪代码如下。

for(i : from 1 to k){push a[i] into the queue
}
for(i : from k+1 to n){t = q.top()push a[i]+t into the queue
}
the answer is q.top()

再来看第二问。问哪些农夫可能会面试她。

显然,每个农夫会面试到哪只奶牛是不确定的,但是每只奶牛接受面试的时间是唯一确定的。所以我们可以先统计每只奶牛面试的开始时间和结束时间。当第 \(i\) 只奶牛的结束时间为 \(t\) 且第 \(j\) 只奶牛的开始时间也为 \(t\) 时,它们可能就能被同一个农夫面试。

想到了什么?笔者这里第一个想到的就是建图,然后跑dfs。具体怎么建图呢?我们发现,每次如果有 \(t\) 个农夫同时空闲下来,那么这 \(t\) 个农夫均有可能继续面试接下来 \(k\) 个奶牛。因此他们都需要和这些点连一条边。样例如下。

这时候只需要把上图反向一下,从 \(n\) 开始跑,看看那些再 \(1\)\(k\) 内的点可以遍历到即可。

但是这样时间复杂度明显爆炸了。于是我们想,令状态 \(s\) 表示当前时间 \(time\) 接受采访可能会遇到的农夫有哪些。很容易发现对于奶牛 \(i\)\(time+t_i\) 的状态和 \(time\) 的状态是一样的。于是可以让 \(time+t_i\)\(time\) 连一条边。最后从 \(n\) 接受面试的时间开始遍历,统计有哪些 \(1\)\(k\) 内可以到达的点。

因为 \(1 \leq t_i \leq 10^9\),所以建图的时候很明显需要离散化。这里用map实现。

代码

const int N=3e5+10;
int n,k,cnt=0;
ll a[N],st[N],en[N];
ll ans1=0;//第一问答案
struct node{int id;ll w;bool operator < (const node &A)const {return w<A.w;}
};
priority_queue<node> q;//优先队列
struct edge{int nxt,to;
}e[N<<1];
int head[N],num_Edge=0;
void add_Edge(int from,int to){e[++num_Edge].nxt=head[from];e[num_Edge].to=to;head[from]=num_Edge;
}
map<int,int> mp;//离散化用的map
int getid(int t){//查找离散化之后的下标if(mp.find(t)==mp.end()) mp[t]=++cnt;/*map.find函数返回的是一个迭代器,若查找成功,返回该键对应元素的迭代器;若未找到,返回与map.end()相同的迭代器*/return mp[t];
}
int vis[N];//是否被遍历到
void dfs(int u){if(vis[u]) return ;vis[u]=1;for(int i=head[u];i;i=e[i].nxt){int v=e[i].to;dfs(v);}
}
signed main(){n=Read();k=Read();cnt=k;for(int i=1;i<=n;i++) a[i]=Read();for(int i=1;i<=k;i++){//1 到 k 直接进队st[i]=0ll,en[i]=a[i];q.push((node){i,-a[i]});//上面写的大根堆,查找最小值需要用小根堆,取反一下即可add_Edge(getid(en[i]),i);}for(int i=k+1;i<=n;i++){node t=q.top();q.pop();t.w=-t.w;st[i]=t.w;en[i]=t.w+a[i];q.push({i,-en[i]}); add_Edge(getid(en[i]),getid(st[i]));//建反图}ans1=q.top().w;ans1=-ans1;printf("%lld\n",ans1);dfs(getid(ans1));//从 n 的面试时间开始遍历for(int i=1;i<=k;i++) printf("%d",vis[i]);return 0; 
}

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

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

相关文章

基于AIGC的图表狐深度评测:自然语言生成专业级统计图表的高效的技术实现

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI 时代的数据库进化论 —— 从向量到混合检索

AI 时代的数据库进化论 —— 从向量到混合检索说明:本文只是关于数据库发展趋势的个人见解,没有特别深入的向量和混合检索的实现原理,属于很浅显易懂的科普类文章,几乎不需要任何背景知识,大家可以放心阅读。 关于…

深入解析:操作系统基础:了解进程、线程、协程,理解I/O模型(阻塞/非阻塞,同步/异步)。

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vue 3.x 前端导出功能

首页安装插件 npm install xlsx 在当前页面中引入import * as XLSX from xlsx点击事件<a-button :disabled="orderList.length === 0" :size="small" @click="exportExcel"><…

最高法-合同目的的认定

最高法-合同目的的认定2025-11-06 18:48 wwx的个人博客 阅读(0) 评论(0) 收藏 举报(2023)最高法民申2327号 天府某公司、西藏某公司等技术服务合同纠纷民事申请再审审查民事裁定书 本院认为: (一)关于涉案合…

2025年恒温恒湿机标杆厂家最新推荐:中焓环境,档案室恒湿机/精密恒温恒湿机/吊顶恒温恒湿机/档案室恒温恒湿机,定义环境控制精准新标准

随着社会对文物保存、精密制造、数据中心运维及工业生产的环境要求日益严苛,恒温恒湿设备已从特定领域专用设备,扩展至博物馆、档案馆、数据中心、医药、电子等多个关键行业。2025年,市场需求预计将持续增长,但随之…

2025年恒温恒湿厂家及恒湿设备标杆之选:中焓环境,适配机房/档案室/展柜等场景

随着各行业对环境温湿度精准控制需求的不断提升,尤其是机房、档案室、展柜等特殊场景对环境稳定性要求趋严,以及环保与节能理念在设备领域的深入渗透,恒温恒湿机、恒湿机等相关设备已从专业领域逐步拓展至更多行业应…

酸角糕行业发展趋势解析:2025年十大品牌综合测评与选择指南

酸角糕行业发展趋势解析:2025年十大品牌综合测评与选择指南【摘要】 酸角糕作为一种传统健康零食,近年来在消费升级和健康饮食潮流推动下,行业规模持续扩大,预计年增长率超过15%。本文基于第三方调研数据、用户口碑…

2025年11月酸角糕行业十大厂家排行榜:探索健康零食的新趋势与优选指南

2025年11月酸角糕行业十大厂家排行榜:探索健康零食的新趋势与优选指南随着消费者对健康食品需求的增长,酸角糕行业近年来蓬勃发展,成为休闲零食市场的新宠。本文基于行业数据分析及市场调研表单(包括消费者偏好、销…

mysql 查看数据库大小

SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.tables GROUP BY table_schema;

2025年11月酸角糕厂家综合评测:健康零食新风向与选购全攻略

2025年11月酸角糕厂家综合评测:健康零食新风向与选购全攻略【摘要】 酸角糕行业正迎来快速发展期,随着消费升级和健康饮食理念的普及,这一传统零食焕发新生。本文基于行业调研数据及消费者反馈表单(包括产品口感测…

2025年11月酸角糕十大厂家权威排行榜:天然健康零食优选指南

2025年11月酸角糕十大厂家权威排行榜:天然健康零食优选指南摘要 近年来酸角糕行业迎来高速增长,2023 年市场规模已达 18.5 亿元,预计 2030 年将以年均 9.6% 的复合增长率攀升至 35 亿元以上。健康消费理念深化推动天…

oi 卡时技巧

这篇记录一下卡时技巧 卡时就是指在程序即将t飞的时候直接输出当前答案,适合在答案更新过程中当前答案有对的可能,但是全部更新完时间不够,就在即将t飞的时候结束程序,直接输出当前答案。 具体代码示例1: //来源于…

不越狱给iOS App装Tweak/插件:LiveContainer环境介绍与Tweak编写

自iOS 16.5.1之后,Arm64e设备的越狱一直处于停滞状态,没有新的进展。 不少越狱开发者也逐渐脱离越狱开发,转向JIT等新方式面对iOS的新环境。 iOS App相关的Tweak/插件在越狱鼎盛时代生机勃勃,Flex3的注入和Cydia等…

课后作业2(异常处理)

Java项目异常处理实战指南:从规范到落地 在Java项目开发中,异常处理是保障系统健壮性的核心能力。一份优秀的异常处理方案能将故障排查时间缩短50%以上,同时提升系统可用性30%。但实际开发中,空catch块、滥用异常控…

Bigtop 从零开始搭建大数据集群

背景 公司目前在线上环境使用的是基于 HDP 2.6.3 搭建的大数据集群,在持续使用4年之后,是否要给集群做个升级成为了一个值得思考的问题 现在集群的 Hadoop 版本是 2.7.3,继续使用倒也没什么问题,但一些使用痛点还是…

chatgpt-to-md优化并重新复习

chatgpt-to-md优化并重新复习之前原本写的又重新改了改 [https://www.cnblogs.com/tokepson/p/19152535](记录 | 个人开发库推送至PyPi流程梳理(ChatGPT to Markdown 工具发布完整流程) )以上废话 总之因为发现只支持…

从零开始制作 MyOS(六)

从零开始制作 MyOS(六) 今天的任务是:添加异常处理代码——除零操作。 除零操作的过程概述: C代码中的除零代码被编译成汇编语言,然后CPU在执行的时候发现除数为0后,直接触发除零错误,然后保存上下文,关中断,…

2025年11月介电常数测试仪推荐厂家排行:应该如何选择靠谱供应商

在材料科学和电子工程领域,介电常数测试仪是评估材料电气性能的关键设备。随着技术的不断进步,市场上涌现出众多介电常数测试仪供应商。本文将基于2025年11月的市场情况,推荐一些值得信赖的介电常数测试仪厂家,并提…