题解:AT_arc177_f [ARC177F] Two Airlines

news/2026/1/22 19:08:17/文章来源:https://www.cnblogs.com/LUlululu1616/p/19518745

感觉很牛的题啊!sto wzy orz 直接自己切了。

题意:现在从 \(0\to n\) 一共有 \(n\) 条道路,每条道路有颜色黑白,有两种颜色的人,给出他们的位置,每一个人有黑或白的颜色,一个人通过对应颜色的道路时不消耗代价,否则消耗 \(1\) 的代价,现在有一个硬币在 \(0\),每一个人在硬币的位置的时候就可以把硬币拿过来携带在自己身上,问把硬币带到 \(n\) 的最小代价。

做法:

注意到,我对于黑色的人和白色的人肯定是一直保持相对顺序的,并且路径一定形如,我一个人回来接这个硬币,然后往后走一段,若干段这样,所以可以很容易地设计出来一个 dp:\(dp_{i,j,k,0/1}\) 代表我现在黑色人用了前 \(i\) 个,白色人用了前 \(j\) 个,硬币在 \(k\),目前携带的人颜色为黑/白,转移显然。

然后想想这个东西很没有前途,因为这三维都一定是要记录的。我们考虑换一换定义,我们现在记录的是绝对的位置,比如我黑色的人总共 \(x\) 个我用了前 \(i\) 个,那我们考虑变成相对的,也就是,在我这个位置之后有 \(j\) 个位置用过了,白色那一维类似,转移也是可以容易做的。感觉如果像我一样绕死在绝对的那个 dp 就基本没啥前途。

但是这样仍然没有优化我们的复杂度,还是三次的,这个时候我们就得想办法优化一下我们的 dp,考虑一些贪心,比如路径比较远的时候我们就不让别人帮这种,虽然都不太对,但是贪着贪着你会有点感觉,就是,如果两个黑色人都越过了 \(i\),说明应该中间有一段非常长的白色,这段的代价太大了以至于我们要先切换一次白色,再切换一次黑色这样带过来,否则我们直接让黑色冲过去就可以了。画个图:

这里用红蓝代替黑白。

考虑让黑色冲过去会改变哪些代价,会多一个 \(x\),少一个白色,但是我们先不管,就当是 \(0\),不影响我们分析。然后会节省 \(y\) 这一段,因为第二段黑色过来要走那一段 \(y\),那么要求 \(x>y\),然后你再把 \(y\) 展开成多段,发现会有比如 \(y>z\),然后就会要求 \(x>2z\),你会发现这样的限制是一直在翻倍的!所以我们第 \(2,3\) 维完全没有必要开 \(O(n)\),开成 \(\log\) 就可以了。

这样这个题就做完了,复杂度两只 \(\log\)

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 6e4 + 5, lim = 20;
int n, m, t[maxn][2], a[maxn], s[maxn][2];
int dp[maxn][lim + 5][lim + 5][2], nxt[maxn][lim + 5][2];
vector<int> vec[2];
signed main() {cin >> n >> m;for (int i = 1; i <= n; i++) {char c; cin >> c;a[i] = (c == 'A' ? 1 : 0); }for (int i = 1; i <= n; i++)s[i][0] = (s[i - 1][0] + (a[i] == 1)),s[i][1] = (s[i - 1][1] + (a[i] == 0));for (int i = 1; i <= m; i++) {int p; char c; cin >> p >> c;vec[(c == 'A' ? 1 : 0)].push_back(p);t[p][(c == 'A' ? 1 : 0)]++;}sort(vec[0].begin(), vec[0].end()), sort(vec[1].begin(), vec[1].end());for (int i = 0; i <= n; i++) {int s1 = lower_bound(vec[0].begin(), vec[0].end(), i) - vec[0].begin();int s2 = lower_bound(vec[1].begin(), vec[1].end(), i) - vec[1].begin();for (int j = 1; j <= lim; j++) {		nxt[i][j][0] = (s1 < vec[0].size() ? vec[0][s1] : -1);nxt[i][j][1] = (s2 < vec[1].size() ? vec[1][s2] : -1);s1++, s2++;}}memset(dp, 0x3f, sizeof(dp));if(nxt[0][1][0] != -1)dp[0][1][0][0] = s[nxt[0][1][0]][0];if(nxt[0][1][1] != -1)dp[0][0][1][1] = s[nxt[0][1][1]][1];for (int i = 0; i < n; i++) {for (int j = 0; j <= lim; j++)for (int k = 0; k <= lim; k++) {for (int l = 0; l <= 1; l++) {if(j < lim && nxt[i][j + 1][0] != -1)dp[i][j + 1][k][0] = min(dp[i][j + 1][k][0], dp[i][j][k][l] + s[nxt[i][j + 1][0]][0] - s[i][0]);if(k < lim && nxt[i][k + 1][1] != -1)dp[i][j][k + 1][1] = min(dp[i][j][k + 1][1], dp[i][j][k][l] + s[nxt[i][k + 1][1]][1] - s[i][1]);}}for (int j = 0; j <= lim; j++)for (int k = 0; k <= lim; k++)for (int l = 0; l <= 1; l++)dp[i + 1][max(0ll, j - t[i][0])][max(0ll, k - t[i][1])][l] = min(dp[i + 1][max(0ll, j - t[i][0])][max(0ll, k - t[i][1])][l], dp[i][j][k][l] + (l != a[i + 1]));}int ans = 9e18;for (int i = 0; i <= lim; i++)for (int j = 0; j <= lim; j++)for (int l = 0; l <= 1; l++)ans = min(ans, dp[n][i][j][l]);cout << ans << endl;return 0;
}

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

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

相关文章

2026亲测!10款能救命的免费降AI率神器【建议收藏】

这两天我的后台简直炸了&#xff1a; “救命啊&#xff0c;论文AI率爆表咋整&#xff1f;导师下了死命令要降低ai率&#xff0c;但我试了一堆免费降ai率工具&#xff0c;全是人工智障。” 说实话&#xff0c;我也经历过这种崩溃。第一稿AI率飙到88%&#xff0c;直接被退稿&…

智慧交通高速公路城市道路路面抛洒物散落货物障碍物检测数据集VOC+YOLO格式4521张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数)&#xff1a;4521标注数量(xml文件个数)&#xff1a;4521标注数量(txt文件个数)&#xff1a;4521标注类别…

基于大数据+深度学习的音乐推荐系统开题报告

基于大数据深度学习的音乐推荐系统开题报告 一、选题背景及意义 &#xff08;一&#xff09;选题背景 随着数字音乐产业的迅猛发展与互联网技术的深度普及&#xff0c;全球数字音乐市场迎来爆发式增长&#xff0c;流媒体音乐平台已成为用户获取音乐资源的核心渠道。据行业数据…

2026年1月干花厂家推荐榜:押花、永生花、干花原材料、押花原材料、永生花原材料,恒鑫干花天然工艺解锁空间美学与治愈力

在自然美学与松弛感生活盛行的当下,干花凭借无需繁复养护、定格自然肌理的优势,成为空间装饰的热门之选。2026 年开年,兼具品质与设计感的干花产品备受青睐,这份推荐榜聚焦优质品牌与实用指南,为你精准锁定值得入…

从零构建AI Agent智能体

本文详细介绍了如何从零构建AI Agent智能体的8个关键步骤&#xff0c;包括选择大模型、定义控制逻辑、核心指令、工具优化、记忆处理、输出解析、行动编排及多智能体设计。文章强调AI Agent智能体是未来技术趋势&#xff0c;正处于红利期&#xff0c;企业需求旺盛。 AI Agent 智…

执医技能考试培训机构哪家最强,今天为您揭秘“阿虎医考”

在医考培训领域,持续深耕的时长与规模本身就是专业性的重要佐证。作为一名长期关注医学教育赛道的第三方测评人员,我们坚持深度考察了多家执医技能考试培训产品。近期,阿虎医考推出的「阿虎技能小黑屋」引起了我们的…

收藏必看!AI时代前端已死?前端工程师将转型为“验证专家“,3大核心能力让你不被替代!

AI时代前端岗位需求下降&#xff0c;但前端工程师不会消失&#xff0c;职责将转变为承担验证角色。前端工程师需利用自身在体验、交互和链路理解上的优势&#xff0c;强化产品sense、用户体验理解和全链路交付三大核心能力。蚂蚁团队提出前端将经历从FFA到AFF的演进路径&#x…

备考2026年执医技能考试,我们该选哪一家培训机构更好呢?

身为一名长期跟踪测评各类医考培训产品的小编,我见证了无数考生的欣喜与泪水。执业医师考试,尤其是技能考核这道“生死门”,每年都让大量考生陷入了集体性焦虑:为什么明明会,一上考场就丢分?为什么跟了“大名鼎鼎…

虚实共生:实物识别开启AR融合展示时代

实物识别桌 https://www.bmcyzs.com/与增强现实技术的结合&#xff0c;开辟了更具沉浸感的互动展示新维度。在这一融合体验中&#xff0c;当观众亲手转动文物仿制品时&#xff0c;借助AR设备即可同步观察到叠加在实物之上的动态修复过程或结构解析&#xff0c;从而将静态展品转…

2026执业药师听哪个老师的课?这份通关推荐清单,靠谱闭眼入!

文章一:2026执业药师听哪个老师的课?这份通关推荐清单,靠谱闭眼入!一、 引言:择师如择路,选对引路人关乎备考效率执业药师资格考试涵盖药学专业知识、药事管理与法规及综合技能,内容繁杂且更新快。自学往往难以…

2026执业医师考试培训班怎么选?特别实用指南来啦

随着2026年执业医师考试的备战号角吹响,无数医学生和医疗从业者正面临一个关键抉择:如何从琳琅满目的培训市场中,选出真正适合自己的培训班?作为执业医师考试测评机构的专业人员,我每年接触大量培训机构和学员反馈…

从传统绩效管理流程转变的8种方法 — 摘自《绩效管理如何扼杀绩效–以及如何应对》

便员工可以弄清楚自己的“如何”实现目标。当员工通过允许他们设计自己的工作生活和日常工作来了解您对他们的信任时,他们将更加投入和投入,他们将做出更大的贡献。 在绩效管理方面这意味着什么?这意味着放弃计划的…

2026执业医师培训班优选:精选攻略在此

随着2026年执业医师考试的备战季全面拉开,无数医学同仁站在了选择的关键路口:面对市场上数十家培训机构,究竟哪家真正值得托付自己宝贵的备考时间?作为连续多年跟踪医考培训行业的独立测评团队,我们今年再次对主流…

2025年大模型训练革命:RLVR如何让AI真正学会推理?技术干货必读收藏

RLVR(基于可验证奖励的强化学习)在2025年成为大模型训练新范式&#xff0c;与依赖人类反馈的RLHF不同&#xff0c;RLVR通过自动化客观奖励信号驱动模型学习。这种训练方式让模型自主形成推理路径&#xff0c;而非简单模仿。RLVR具备可持续优化能力&#xff0c;使训练重心从单纯…

企业视频培训快速创建视频列表、做授权观看的例子

企业将分散的培训视频资料结构化&#xff0c;快速的建立“企业云大学”&#xff0c;实现。 新人入职培训 (Onboarding)&#xff1a; 将企业文化、考勤制度、办公软件使用、各部门职能制作成视频专栏。新员工入职后&#xff0c;通过扫码进入专栏自主学习&#xff0c;系统自动记录…

计算机毕业设计springboot基于Hadoop实现的酒店推荐框架的设计与实现 《基于 Hadoop 大数据生态与 SpringBoot 微服务的酒店智能推荐系统研发》 智慧酒店个性化推荐平台

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

PyQT5:ImportError: DLL load failed while importing QtWidgets: 找不到指定的程序。

报错内容: Traceback (most recent call last):File "D:\Projects\PythonProjects\fangzhensystem\weather_data\download_merge.py", line 6, in <module>from PyQt5.QtWidgets import * ImportErro…

国产自主可控:飞控计算机半实物实时仿真测试系统

1、研制背景全球航空业正经历从双寡头到多极化的深刻变革。中国商飞凭借C919加入干线竞争&#xff0c;空客A220拓展细分市场&#xff0c;巴西航空工业则巩固支线优势。技术层面&#xff0c;综合模块化航电&#xff08;IMA&#xff09;架构成为新标杆&#xff0c;动力系统向电动…

实用指南:双 11 预演:系统吞吐量跌至 0!一次由 Log4j 锁竞争引发的线程“集体猝死”

实用指南:双 11 预演:系统吞吐量跌至 0!一次由 Log4j 锁竞争引发的线程“集体猝死”2026-01-22 18:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; …

Claude Skills vs MCP深度解析:AI从“能说“到“能做“的终极进化,看完必收藏!

Claude Skills与MCP是AI技术发展的互补组件。MCP作为统一接口标准&#xff0c;相当于AI世界的USB-C接口&#xff0c;解决了AI工具调用混乱的问题&#xff1b;Skills则提供具体做事方法。MCP负责"能否调用"&#xff0c;Skills负责"如何执行"。两者结合才能实…