PTA团体程序设计天梯赛L2真题讲解L2-033-036

发布时间:2026/8/9 23:16:29

PTA团体程序设计天梯赛L2真题讲解L2-033-036
官网https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7文章目录L2-033 简单计算器L2-034 口罩发放L2-035 完全二叉树的层序遍历L2-036 网红点打卡攻略L2-033 简单计算器题目大意使用数字栈和运算符栈两个栈实现简易计算器将输入的数字和运算符按顺序分别压入对应栈中随后循环执行「弹出两个数字 弹出一个运算符 → 计算 → 结果压回数字栈」的流程直到数字栈仅剩一个元素即为最终计算结果。除法仅保留整数部分若出现除数为零的非法操作输出指定错误信息并直接结束程序。解题思路定义两个栈分别存储整数数字和字符型运算符。按输入顺序将所有数字压入数字栈将所有运算符压入运算符栈。循环执行计算当数字栈大小大于 1 时依次弹出栈顶两个数字n1、n2弹出栈顶运算符op。按n2 op n1的规则计算栈是后进先出结构先弹出的是右操作数后弹出的是左操作数减法和除法需特别注意顺序。除法特判若右操作数n1为 0按格式输出错误信息并直接终止程序。将计算结果压回数字栈循环结束后输出数字栈的栈顶元素。核心注意点运算顺序是本题最易错点必须严格遵循「后弹出的数 运算符 先弹出的数」。题目要求只取整数部分C 内置整数除法向零取整的特性正好符合要求。运算符总数为n-1与数字数量天然匹配循环终止条件为数字栈长度为 1。参考代码#includebits/stdc.h#defineintlonglongusingnamespacestd;signedmain(){intn,t;cinn;stackints1;// 数字栈stackchars2;// 运算符栈for(inti0;in;i){cint;s1.push(t);}for(inti1;in;i){charc;cinc;s2.push(c);}while(s1.size()1){intn1s1.top();s1.pop();intn2s1.top();s1.pop();charops2.top();s2.pop();if(op)s1.push(n1n2);if(op-)s1.push(n2-n1);if(op*)s1.push(n1*n2);if(op/){if(n10){coutERROR: n2/0;return0;}s1.push(n2/n1);}}couts1.top();return0;}L2-034 口罩发放题目大意处理连续 D 天的口罩申请数据每天有 T 条申请、S 个发放名额。发放规则① 身份证必须是 18 位纯数字② 同一人两次成功领取至少间隔 P 天③ 按提交时间先后发放时间相同时按输入顺序排序同一天每人最多领取一次。最终还需按首次出现顺序输出所有身份证合法且身体状况为 1 的人员名单。解题思路结构体设计定义申请记录结构体存储姓名、身份证号、身体状况、提交时间转换为分钟数便于比较、当天输入顺序。身份证校验函数判断字符串长度是否为 18且每一位都是数字。全局数据维护用哈希表记录每个人最后一次成功领取的天数用于校验领取间隔。用列表去重集合维护身体状况为 1 的人员保证按首次出现顺序输出且不重复。每日处理流程读入当天所有申请记录先遍历一遍将身份证合法且身体不适的人员加入全局统计列表。筛选出身份证合法、满足领取间隔的候选记录。按「提交时间升序 → 输入顺序升序」对候选记录排序。按顺序发放口罩名额用完即停止用当日去重集合避免同一人当天多次领取同时更新全局最后领取天数。全部天数处理完毕后遍历输出身体不适人员列表。核心注意点身体状况统计与是否成功领取无关只要身份证合法且身体状况为 1 就需要记录。间隔判断规则第day天领取后第day1到第dayP天都不可再次领取判断条件为day - 上次领取天数 P则不符合要求。同一天内同一人提交多条申请也只能领取一次必须做当日去重。时间转换为分钟数后整数比较比字符串比较更高效且不易出错。参考代码#includebits/stdc.husingnamespacestd;// 检查身份证号是否为18位数字boolck(conststrings){if(s.size()!18)returnfalse;for(charc:s)if(c0||c9)returnfalse;returntrue;}structnd{string nam,sfz;intop,tim,id;booloperator(constndn1)const{if(tim!n1.tim)returntimn1.tim;returnidn1.id;}};intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intD,P;cinDP;mapstring,intlast;// 每人最后一次成功领取的天数vectorpairstring,stringres;// 最终身体不适的人按首次出现顺序unordered_setstringseen;// 去重辅助for(intday1;dayD;day){intT,S;cinTS;vectorndtmp;// 当天符合条件的申请// 先读入当天所有申请同时收集身体不适的人for(inti0;iT;i){string name,sfz;intop,hh,ss;charcolon;cinnamesfzophhcolonss;if(!ck(sfz))continue;// 身份证不合法忽略// 记录身体不适的人合法身份证且 op1if(op1!seen.count(sfz)){seen.insert(sfz);res.emplace_back(name,sfz);}// 间隔检查如果上次成功领取过且间隔不足 P 天则不能申请autoitlast.find(sfz);if(it!last.end()day-it-secondP)continue;tmp.push_back({name,sfz,op,hh*60ss,i});}// 按时间和输入顺序排序sort(tmp.begin(),tmp.end());// 发放口罩unordered_setstringtoday;// 当天已领取的人避免同一天重复intcnt0;for(constautot:tmp){if(cntS)break;if(today.count(t.sfz))continue;// 同一天已领过today.insert(t.sfz);last[t.sfz]day;// 更新最后成功领取日期cnt;coutt.nam t.sfz\n;}}// 输出所有身体不适的人按首次出现顺序for(constautop:res){coutp.first p.second\n;}return0;}L2-035 完全二叉树的层序遍历题目大意给定一棵包含 n 个节点的完全二叉树的后序遍历序列要求输出该树的层序遍历序列。解题思路本题核心利用完全二叉树的编号性质若根节点编号为 1则任意节点 i 的左孩子编号为2*i右孩子编号为2*i1而层序遍历的结果恰好就是按节点编号 1~n 依次输出的值。用数组ans按节点编号存储节点值最终直接按顺序输出即为层序遍历。按照后序遍历「左子树 → 右子树 → 根节点」的顺序递归填充数组递归终止条件当前节点编号 n说明不存在该节点。先递归处理左孩子再递归处理右孩子最后给当前节点赋值。用指针p记录后序遍历数组的当前位置每访问一个根节点就将后序序列的第 p 个值赋给对应编号的节点指针后移。最后按 1~n 的顺序输出数组即为层序遍历结果。核心注意点无需真正构建二叉树利用完全二叉树的编号特性是本题最优解代码简洁且不易出错。赋值顺序必须严格遵循后序遍历的「左-右-根」才能和输入的后序序列一一对应。递归边界是节点编号超过总节点数 n此时说明该位置没有节点直接返回。参考代码#includebits/stdc.husingnamespacestd;intans[40],pos[40],p1,n;voiddfs(intnow){if(nown)return;// 超出节点数递归终止dfs(now*2);// 遍历左子树dfs(now*21);// 遍历右子树ans[now]pos[p];// 给根节点赋值}intmain(){cinn;for(inti1;in;i)cinpos[i];dfs(1);for(inti1;in;i){if(i1)cout ;coutans[i];}return0;}L2-036 网红点打卡攻略题目大意给定 n 个网红点和 m 条双向通路包含家编号0到景点的通路以及 k 条打卡攻略。需要判断每条攻略是否有效必须恰好打卡所有 n 个网红点每个点仅去一次路径上每一段家→第一个点、相邻景点、最后一个点→家都必须存在通路。统计有效攻略的总数并输出总花费最少的攻略序号和总花费花费相同时选择序号更小的攻略。解题思路建图存储使用邻接矩阵存储两点之间的旅行花费初始化为无穷大输入双向边时同步更新两个方向的花费。逐条校验攻略初始化起点为家编号 0总花费为 0用访问数组标记景点是否已打卡。遍历攻略中的每个景点若已访问过则重复打卡攻略无效若当前点到该景点无路攻略无效否则累加花费更新当前位置标记已访问。遍历完所有景点后额外检查① 景点数量必须恰好等于 n② 最后一个景点到家的路必须存在。维护最优解统计有效攻略数量同时维护最小花费和对应的攻略序号仅当花费严格更小时才更新保证花费相同时序号小的优先。核心注意点有效攻略有两个必要前提景点数恰好为 n不能多也不能少、全程每一段路都连通缺一不可。邻接矩阵初始化需使用足够大的无穷值如0x3f3f3f3f避免累加后溢出。题目保证至少存在一个有效攻略无需处理无有效攻略的边界情况。序号从 1 开始计数更新最优解时注意下标对应。参考代码#includebits/stdc.husingnamespacestd;constintN210;intd[N][N];boolvis[N];intmain(){intn,m;cinnm;memset(d,0x3f,sizeofd);for(inti0;im;i){inta,b,c;cinabc;d[a][b]d[b][a]c;}intk;cink;intmi1e99,ans0,num0;for(inti0;ik;i){intcnt;cincnt;memset(vis,0,sizeofvis);intu0,v,res0;boolfd0;// 标记是否无效for(intj0;jcnt;j){cinv;if(vis[v]){fd1;continue;}// 重复打卡vis[v]1;if(d[u][v]0x3f3f3f3f){fd1;continue;}// 无路resd[u][v];uv;}// 检查回家的路 景点数量是否足够if(d[u][0]0x3f3f3f3f||cntn)fd1;elseresd[u][0];if(!fd){num;if(resmi){mires;ansi1;}}}coutnum\n;coutans mi;return0;}

相关新闻

从API调用到本地化AI工具集:无限使用与模块化设计的工程实践

从API调用到本地化AI工具集:无限使用与模块化设计的工程实践

2026/8/9 23:06:29

你有没有遇到过这样的场景:想用最新的AI模型跑个任务,结果要么是API调用次数受限,要么是费用高得让人犹豫,要么是功能模块不够灵活,只能完成一些基础对话?这几乎是每个想深度使用AI工具的人都会遇到的瓶颈。…

前缀和会过期吗:Fenwick 树把在线统计降到对数时间

前缀和会过期吗:Fenwick 树把在线统计降到对数时间

2026/8/9 23:06:29

日志不断追加、查询却不能停机重算时,Fenwick 树用最低位结构保存可合并的区间和。本文从数组下标拆分开始推导 update/query 两条路径,给出 Python 实现、边界测试和工程取舍。 同时说明边界、复杂度与可复现实验,方便读者直接改造成自己的工…

本地大模型部署指南:从开源模型到无限使用AI的实践与验证

本地大模型部署指南:从开源模型到无限使用AI的实践与验证

2026/8/9 23:06:29

这次我们来看一个名为“无限使用GPT5 内置多种模块 懂的都懂”的项目。从标题来看,它似乎指向一个能够绕过官方限制、免费或低成本使用类GPT-5级别AI能力的工具或服务,并集成了多种功能模块。这类项目通常涉及对现有开源大模型的本地部署、API接口封装或…

AI根因分析大变局:别再卷模型,真正瓶颈是上下文工程

AI根因分析大变局:别再卷模型,真正瓶颈是上下文工程

2026/8/10 0:26:34

文章目录1. 别再卷模型了,根因分析的瓶颈早就换地方了1.1 以前大家的执念:模型越强,排障越猛1.2 现在业内共识:喂什么数据,比用什么模型重要2. 两种主流玩法,现在风向明显变了2.1 第一种:代理式…

大模型应用后端底座设计与高并发支撑:并发时先看资源边界

大模型应用后端底座设计与高并发支撑:并发时先看资源边界

2026/8/10 0:26:34

大模型应用后端底座设计与高并发支撑:并发时先看资源边界 当大模型(LLM)应用的用户规模从几十个内部测试人员暴增到上万并发请求时,后端架构师面临的挑战与传统 Web 系统完全不同。 传统 Web 微服务处理一个 HTTP 请求耗时通常在 …

Claude Code重大更新:多会话可互相通信,告别手动复制上下文

Claude Code重大更新:多会话可互相通信,告别手动复制上下文

2026/8/10 0:26:34

文章目录Claude Code重磅更新:AI会话可以互相发消息,告别人工复制传上下文1. 以前多会话开发,纯纯当人工传声筒2. 现在AI自己会跨窗口传小纸条了2.1 动口就行,传话不用你动手2.2 卡壳了还能互相搭把手3. 这功能到底是怎么跑起来的…

AI 云原生后端架构与智能服务网格治理:上下文与工具如何分工

AI 云原生后端架构与智能服务网格治理:上下文与工具如何分工

2026/8/10 0:26:34

AI 云原生后端架构与智能服务网格治理:上下文与工具如何分工 大模型接入云原生微服务体系后,很多团队习惯直接把模型 API 当作普通 HTTP 接口挂在 Envoy 或 Istio 后面。跑了两个月发现 Sidecar 经常频繁触发 OOM Killer,或者 Tool Call 调用…

美团性能优化专项面经:APM实践、列表滑动优化、图片加载优化、编译加速

美团性能优化专项面经:APM实践、列表滑动优化、图片加载优化、编译加速

2026/8/10 0:26:34

上篇聊完Kotlin协程和编译器插件,这篇进入性能优化专项。美团对性能优化重视程度很高——外卖、到店、酒旅每条业务线都有严格性能指标。面试考的不光你会用什么工具,而是能不能从系统层面分析瓶颈并给出方案。 高级岗要求能独立搭建APM体系并推动优化落地。 今天8道题覆盖…

Spring Boot 与源码级原理拆解:接口演进怎样减少返工

Spring Boot 与源码级原理拆解:接口演进怎样减少返工

2026/8/10 0:16:33

Spring Boot 与源码级原理拆解:接口演进怎样减少返工 范围说明: 本文是接口设计演练;异常语义、字段兼容和校验策略须以实际调用方验证。 业务背景与接口重构痛点 在企业级 Spring Boot 应用的开发与演进过程中,API 接口往往是业…

比较好的亚太EMBA,问了6位校友师资差别真的挺大

比较好的亚太EMBA,问了6位校友师资差别真的挺大

2026/8/9 0:05:25

比较好的亚太EMBA核心差异先看什么?对于希望兼顾工作与系统管理能力提升的亚太区高管而言,筛选匹配度高的EMBA项目时,师资配置是决定学习体验与实际收获的核心要素之一。我们结合3-4个公开信息透明、办学历史较长的亚太区主流EMBA项目特点&am…

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

备考3个月对比6份资料 海外游学的亚洲EMBA面试注意点

2026/8/9 0:05:25

备考海外游学的亚洲EMBA面试,核心要围绕项目国际化设计逻辑、个人跨文化管理经验匹配度两个维度准备,避免把游学模块等同于普通旅游参访的认知偏差。不少备考者花3个月对比6份资料,却容易忽略面试官对“国际视野落地能力”的考察——比如香港…

比较好的国内EMBA,问了二十位校友聊透人脉价值

比较好的国内EMBA,问了二十位校友聊透人脉价值

2026/8/9 0:05:25

比较好的国内EMBA核心差异体现在哪些方面?比较好的国内EMBA的核心长期价值,很大程度上依托于校友网络的连接质量与资源生态的活跃度,这也是不少高管在择校时优先考量的因素。我们结合3-4个市场关注度较高的项目公开信息,从课程、师…

Prometheus 监控体系深度部署:选型别只看功能清单

Prometheus 监控体系深度部署:选型别只看功能清单

2026/8/10 0:06:33

Prometheus 监控体系深度部署:选型别只看功能清单 选型场景:小规模集群直接部署 Thanos 的代价 如果为解决 15 天本地存储限制,直接部署 Thanos Sidecar、Store Gateway、Querier、Compactor、Ruler、Bucket Web 并接入 S3,就需…

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节

2026/8/10 0:06:33

ELK 日志分析平台与全链路追踪:代码评审该盯住哪些细节 场景示例:一条 2MB 日志影响 Elasticsearch 写入 一个上传接口若执行 log.Info("Request dumped: ", r.Body),会将 2MB 的二进制 Body 写入日志。高并发下,这类超…

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节

2026/8/10 0:06:33

从零到一构建开源项目的完整历程:代码评审该盯住哪些细节 项目进入稳定版本后,外部 Pull Request(PR)会带来新的协作成本。大范围改动混入风格重构,或修复局部问题时修改公共函数签名,都可能扩大评审和兼容…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/8 5:07:31

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/9 13:42:46

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/8 2:30:15

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…