news 2026/5/12 12:47:12

洛谷P1042 P2670 P1563题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷P1042 P2670 P1563题解

洛谷P1042 P2670 P1563题解

作者:爱吃大芒果

个人主页 爱吃大芒果

本文所属专栏 从0到1自学C++

更多专栏

Ascend C 算子开发教程(进阶)
鸿蒙集成
Flutter


P1042

题目链接

题目分析

我们可以使用while循环不断读取输入字符,直到遇到’E’为止。然后我们可以定义一个函数来处理比赛得分的计算。该函数接受一个参数lim,表示比赛的得分上限。在函数中,我们遍历输入的字符串,根据字符’W’和’L’分别增加A队和B队的得分。当任一队的得分达到lim且两队得分差至少为2时,我们输出当前比分并重置得分。最后,在主函数中调用该函数两次,分别传入11和21作为参数。

AC代码

#include<bits/stdc++.h>usingnamespacestd;charc;//存储输入的单个字符string s;//存储输入比赛信息到字符串inta=0,b=0,n;voidfct(intlim){//lim为得分上限for(chari:s){//每次循环,i获取s中的一个字符,对i进行操作if(i=='W')a++;//A队得分加1if(i=='L')b++;//B队得分加1if(max(a,b)>=lim&&abs(a-b)>=2){cout<<a<<':'<<b<<endl;//输出比分a=0,b=0;//重置比分}}printf("%d:%d\n\n",a,b);a=0,b=0;//重置比分}intmain(){while(cin>>c){//while循环读取字符直到遇到'E'if(c=='E')break;s+=c;}fct(11),fct(21);return0;}

P2670

题目链接

题目分析

我们可以使用一个二维数组来表示雷区,并在数组的边界上添加一圈哨兵(例如使用字符’#‘)以简化边界检查。然后,我们遍历雷区的每个单元格,如果该单元格不是雷(即不是’*'),我们就检查它周围的八个方向,统计相邻雷的数量,并将该数量存储在对应的单元格中。最后,我们输出处理后的雷区。

AC代码

#include<bits/stdc++.h>usingnamespacestd;intmain(){constintdx[]={1,1,1,0,0,-1,-1,-1};//八个方向的x坐标变化constintdy[]={-1,0,1,-1,1,-1,0,1};//八个方向的y坐标变化constintmaxn=105;//定义最大行列数charg[105][105];//雷区数组intm,n;cin>>n>>m;for(inti=1;i<=n;i++)for(intj=1;j<=m;j++)cin>>g[i][j];//输入雷区for(inti=1;i<=n;i++){for(intj=1;j<=m;j++)if(g[i][j]!='*'){//如果不是雷intcnt=0;//统计相邻雷的数量for(intk=0;k<8;k++)//遍历八个方向if(g[i+dx[k]][j+dy[k]]=='*')cnt++;//检查相邻的八个方向cout<<cnt;}elsecout<<"*";cout<<endl;}return0;}

P1563

题目链接

题目分析

我们可以使用一个数组来存储每个人的方向,然后使用一个循环来模拟n次操作。在每次操作中,我们根据当前人的方向和操作类型来计算下一个人的位置。最后,我们输出最后一个人的名字。

注意:在模拟n次操作时,我们需要使用取模运算来防止越界。

由于题意不太好理解,以测试样例为例,如图所示:

AC代码

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,m;cin>>n>>m;vector<int>dir(n);// 0 向左 1 向右vector<string>job(n);//工作for(inti=0;i<n;i++){cin>>dir[i]>>job[i];//输入方向和工作}intcur=0;// 当前所在位置for(inti=0;i<m;i++){inta,s;// a: 操作类型 s: 步数cin>>a>>s;// 输入操作类型和步数if(dir[cur]==0&&a==0){cur=(cur-s+n)%n;// 向左转,s步,取模n防止越界}elseif(dir[cur]==0&&a==1){cur=(cur+s)%n;// 向右转,s步,取模n防止越界}elseif(dir[cur]==1&&a==0){cur=(cur+s)%n;// 向右转,s步,取模n防止越界}elseif(dir[cur]==1&&a==1){cur=(cur-s+n)%n;// 向左转,s步,取模n防止越界}}cout<<job[cur]<<endl;//输出最后一个人的名字return0;}

总结

以上就是洛谷P1042 P2670 P1563题解的全部内容。
希望对你有所帮助。
如果有任何问题,欢迎交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 17:19:25

5步完成老款Mac系统升级:OpenCore完整配置指南

5步完成老款Mac系统升级&#xff1a;OpenCore完整配置指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为老款Mac无法安装最新macOS系统而困扰吗&#xff1f;OpenC…

作者头像 李华
网站建设 2026/5/12 9:52:11

SSD1306中文手册详细解析:入门级时序理解

从零搞懂 SSD1306&#xff1a;如何读懂那本“天书”级中文手册&#xff1f;你有没有试过打开一份芯片数据手册&#xff0c;满屏的时序图、寄存器位域和缩写参数&#xff0c;瞬间感觉像在读外星文&#xff1f;尤其是当你第一次面对SSD1306 中文手册的时候——IC 波形密密麻麻&am…

作者头像 李华
网站建设 2026/5/11 19:20:08

League Director终极指南:打造专业级英雄联盟回放视频

你是否曾为英雄联盟中的精彩操作而惊叹&#xff0c;却苦于无法完美记录下来&#xff1f;League Director这款开源工具将彻底改变你的视频制作体验&#xff0c;让你从普通玩家变身专业导演&#xff0c;把每一场精彩对局都变成电影级的视觉盛宴。 【免费下载链接】leaguedirector…

作者头像 李华
网站建设 2026/5/10 22:14:00

Open-AutoGLM本地部署实战(从零到一键启动的完整流程)

第一章&#xff1a;Open-AutoGLM本地部署概述 Open-AutoGLM 是一个基于 GLM 架构的开源自动化大语言模型工具&#xff0c;支持本地化部署与定制化任务处理。通过在本地环境中运行该模型&#xff0c;用户可在确保数据隐私的同时&#xff0c;实现高效的任务推理与批量处理。本地部…

作者头像 李华
网站建设 2026/5/1 11:46:53

21、PowerShell 环境配置与优化全解析

PowerShell 环境配置与优化全解析 1. 用户配置文件脚本 在对 Shell 会话进行个性化设置并打造完美风格和配置的窗口后,我们自然希望能保存这些设置,以便每次启动控制台会话时都能应用。PowerShell 提供了多种方式来保存配置脚本,以下是不同场景下的设置方法。 1.1 所有用…

作者头像 李华