CSP 2023 公路、消消乐, 2024 决斗 题解
《公路》题解题目大意公路有 n 个站点站点i到i1距离vi公里。站点i油价ai元/升只能买整数升油。1 升油跑 d 公里油箱无限大初始油箱为空从 1 开到 n求最小总花费。思路拆分核心思路在当前站点买油买到下一个比这个站点便宜的站点才加油。关键点油只能买整数升距离不一定是 d 的倍数要用ceil向上取整算需要多少升油。油箱无限贪心策略前面更便宜就尽量前面买。s累计还需要行驶的公里数买完油之后消耗掉 need*d 公里续航。示例图解n4, d5假设 n4d5站点间距离为 [3, 7, 4]油价为 [4, 2, 3, 1]我们逐步模拟贪心过程站点 i累计距离 s当前最低油价 mind需要升数 need累计花费 sum说明134ceil(3/5)14在站点1买1升油花费4元续航5公里剩余s3-5-223710min(4,2)2ceil(10/5)242×28在站点2买2升油花费4元续航10公里剩余s10-1003044min(2,3)2ceil(4/5)182×110在站点3买1升油花费2元续航5公里剩余s4-5-1过程解读站点1油价4元/升先买1升花费4元能跑5公里足够开到站点2。站点2油价降到2元/升此时已累计需要行驶10公里买2升花费4元刚好跑完到站点3的距离。站点3油价3元/升但当前最低价仍是站点2的2元/升所以继续按2元/升买1升花费2元足够开到终点站点4。最终总花费为10 元。可以看到贪心策略的核心就是只要遇到更便宜的油站就按当前最低价买够到下一个更便宜油站所需的油量从而保证全程用最低价加油。AC代码#includeiostream#includecmathusingnamespacestd;intn,d,ans,sum;intv[100005];inta[100005];intmain(){cinnd;for(inti1;in;i){cinv[i];}ints0,mindINT_MAX;for(inti1;in;i){cina[i];if(in)sv[i];mindmin(mind,a[i]);if(s0){longlongneedceil(1.0*s/d);sumneed*mind;s-need*d;}}coutsum;return0;}《决斗》题解题目大意每个怪兽攻击 防御规则每回合选怪兽i攻击j(i≠j)如果rirjj被干掉退出游戏否则什么都不发生。每只怪兽最多只能攻击 1 次不管攻击成功还是失败。游戏结束条件场上剩下的所有存活怪兽全都已经发动过攻击。求最后场上最少能剩下多少只怪兽。双指针核心思路本质贪心一一配对击杀用刚好比它大的怪兽去杀它最大化击杀总数。l等待被打死的怪兽的位置r当前拿出来当打手的怪兽位置AC代码#includebits/stdc.husingnamespacestd;intmain(){intn;cinn;vectorinta(n);for(inti0;in;i){cina[i];}sort(a.begin(),a.end());intl0;for(intr0;rn;r){if(a[r]a[l]){l;}}coutn-l;return0;}数学核心思路我们可以知道最后剩下来的怪兽数量等于战斗力相同的最多的怪兽数量。为什么假设有a只战斗力为x的怪兽b只战斗力为y的怪兽x!y那么————在双方火拼之后剩下来的必然是maxa,b只怪兽。因为若abxy则剩下来a只怪兽若ab,xy,这剩下来b(a-b)a只怪兽同理可得a与b打完后必然剩下max(a,b)只怪兽。数学AC代码#includeiostreamusingnamespacestd;inta[100005],ans0;intmain(){intn;cinn;for(inti0;in;i){intx;cinx;a[x];ansmax(ans,a[x]);}coutans;return0;}《消消乐》题解题目大意每次操作删掉两个相邻相同字符删完之后字符串拼接。一个字符串 “可消除” 代表反复操作后能变成空串。求原字符串所有非空连续子串里面有多少个是可消除的。暴力思路50分枚举每个起点i把子串s[i…n‑1]丢进栈模拟。在模拟过程中每一次栈变空就代表从起点 i 到当前位置 j 的子串 s [i~j] 合法cnt 统计数量。#includeiostream#includestackusingnamespacestd;intn;intans;intcheck(string s){stackchart;intcnt0;for(inti0;is.size();i){if(!t.empty()t.top()s[i]){t.pop();}else{t.push(s[i]);}if(t.empty())cnt;}returncnt;}intmain(){string s;cinn;cins;for(inti0;in;i){string s1s.substr(i,n-i);anscheck(s1);}coutans;return0;}90分未优化字符哈希核心模型关键知识点定义f(i)把原串前缀 s[0~i]做栈消消乐之后得到的栈字符串。子串s[l~i]是可消除的 当且仅当f(i)f(l-1)}。证明f(i)前缀0~i消完之后栈状态。f(l-1)前缀0~l-1消完之后栈状态。如果两者完全一样说明中间这一段[l,i]抵消干净了正好为空子串合法。所以问题转化遍历 i统计前面有多少个l-1使得f(l‑1)f(i)累加数量就是答案。mp[st]记录之前该栈状态出现过多少次。mp[“”]1对应I0l-1-1的空栈。字符串的比较、哈希计算时间和字符串长度成正比。最坏O(n^2)n大超时。#includebits/stdc.husingnamespacestd;intn;intmain(){string s;cinn;cins;string st;unordered_mapstring,longlongmp;mp[]1;longlongans0;for(inti0;in;i){charcs[i];if(!st.empty()st.back()c){st.pop_back();}else{st.push_back(c);}ansmp[st];mp[st];}coutans;return0;}AC思路其实就是改用数组stk[] 整数top手动模拟栈。hx[top]栈内当前元素的多项式哈希值。栈长度为 top 时hx[top]就是这个栈状态的唯一 hash。压入字符hx[top]hx[top‑1]*base val©弹出字符直接top–自动复用旧的 hx 值不需要重新算核心要点f(x)字符串前 x 个字符跑一遍消消乐栈得到的栈。如果两个前缀的栈一模一样中间这一段正好互相抵消为空。遍历 i用哈希把f(i)压缩成数字map 统计前面f(i)出现多少次加到答案。#includebits/stdc.husingnamespacestd;usingullunsignedlonglong;longlongn,ans0;string s;intmain(){cinns;string st;constull base131;unordered_mapull,longlongmp;vectorcharstk(n1);vectorullhx(n1);hx[0]0;mp[0]1;inttop0;for(inti0;in;i){charcs[i];if(top0stk[top]c){top--;}else{top;stk[top]c;hx[top]hx[top-1]*base(c-a1);}ull cnthx[top];ansmp[cnt];mp[cnt];}coutans;return0;}

相关新闻

JavaWeb综合案例:Servlet+JSP+Druid+JDBCTemplate完整实践

JavaWeb综合案例:Servlet+JSP+Druid+JDBCTemplate完整实践

1. 这不是“又一个CRUD”,而是一次Web开发能力的完整闭环验证你看到这个标题——“day41 JavaWeb阶段——综合案例:用户信息列表展示(ServletJSPMySQLJDBCTemplateDruidBeanUtilsTomcat)”,第一反应可能是:…

2026/10/13 14:41:52 阅读更多 →
逻辑回归在信用卡诈骗检测中的工业级实战应用

逻辑回归在信用卡诈骗检测中的工业级实战应用

1. 项目概述:为什么信用卡诈骗检测必须用逻辑回归,而不是一上来就上深度学习“使用逻辑回归对信用卡诈骗分析”——这个标题乍看平平无奇,甚至有点“过时”。在满屏都在讲图神经网络、时序异常检测、联邦学习反欺诈的今天,还有人认…

2026/10/13 14:41:52 阅读更多 →
VB.NET连接MySQL完整实战:从mysql_connect到MySqlConnection

VB.NET连接MySQL完整实战:从mysql_connect到MySqlConnection

简介:这是一份基于VB.NET的MySQL连接与注册登录演示项目,面向VB初学者以及需要快速验证MySQL连接逻辑的开发者。压缩包内共15个文件,以多个VB窗体与业务模块源码为核心,配合resx资源、sln解决方案和vbproj工程文件,结构…

2026/10/13 14:40:51 阅读更多 →

最新新闻

TokenTracker:轻量嵌入式LLM Token用量治理工具

TokenTracker:轻量嵌入式LLM Token用量治理工具

1. 这不是又一个“统计面板”,而是一套嵌入式 token 使用量治理闭环你有没有遇到过这样的场景:团队里三个项目共用一套大模型 API 接口,但没人知道谁在调用、调了多少、哪次请求耗 token 最狠?某天账单突然翻倍,排查时…

2026/10/13 15:26:05 阅读更多 →
莫代尔棉内衣:科技纤维的舒适性与耐用性解析

莫代尔棉内衣:科技纤维的舒适性与耐用性解析

1. 莫代尔棉内衣的核心特性解析莫代尔纤维作为21世纪纺织行业的重要创新,本质上是一种再生纤维素纤维。与普通粘胶纤维不同,它采用特殊的纺丝工艺处理榉木浆粕,纤维结晶度和取向度更高。这种分子结构决定了其独特的性能表现——在电子显微镜下…

2026/10/13 15:26:05 阅读更多 →
MFCC特征提取的工程本质:参数选择与matlab实现

MFCC特征提取的工程本质:参数选择与matlab实现

简介:本资源是一份完整的梅尔倒谱系数(MFCC)MATLAB实现代码包,面向语音信号处理初学者、高校课程设计学生及语音识别方向的工程实践者,用于快速掌握MFCC特征提取的核心原理与编程实现。包内共23个文件,涵盖…

2026/10/13 15:26:05 阅读更多 →
教学设备管理系统开发实战:从台账编码到扫码流程落地

教学设备管理系统开发实战:从台账编码到扫码流程落地

简介:教学设备管理系统是一套源自《Visual C项目开发案例精粹》的软件应用案例,面向正在学习C/MFC与数据库开发的读者,帮助理解教育机构如何对设备信息、类别和借用归还记录进行数字化管理,覆盖从设备档案录入、查询修改到借用归还…

2026/10/13 15:26:05 阅读更多 →
FCQA:轻量级结构化文档问答对自动生成框架

FCQA:轻量级结构化文档问答对自动生成框架

简介:本资源是一个基于Stylus构建的前端问答系统项目(fcqa),面向Web前端开发者与AI应用实践者,聚焦于全周期问答功能的界面实现与样式工程化管理。项目采用Stylus作为核心样式语言,结合CSS模块化设计思想&a…

2026/10/13 15:26:05 阅读更多 →
GNN应用部署实战:从单机脚本到线上服务的构建与扩展

GNN应用部署实战:从单机脚本到线上服务的构建与扩展

1. 从单机脚本到线上服务:GNN应用部署到底难在哪很多人做图神经网络,卡在的不是模型结构,而是从“跑通一个demo”到“别人能访问的服务”这一步。前面几篇我们把数据准备、邻接矩阵构建、模型搭建、训练调参都过了一遍,但真正把GN…

2026/10/13 15:25:03 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →