当前位置: 首页 > news >正文

第十六届蓝桥杯 2025 C/C++组 旗帜

目录

题目:

题目描述:

题目链接:

思路:

思路详解:

代码:

代码详解:


题目:

题目描述:

题目链接:

P12340 [蓝桥杯 2025 省 AB/Python B 第二场] 旗帜 - 洛谷

思路:

思路详解:

定义cnt用于记录A的数量,显然一个完整的LANQIAO有两个A。我的思路是先判断每一行存在几个完整的LANQIAO(或者它的变式),举例来说,如果w=10,不管哪一行前7位就是完整的LANQIAO(或者它的变式),那么现在就有h*(w/7)*2。

然后再来计算每一行的不足完整LANQIAO的那一部分,第一层循环遍历每一行,i从1开始。第二次循环遍历不完整部分的每一个字母,定义LANQIAO为数组str,由题第一行从L开始(即数组索引0),第二行从A开始(即数组索引1),每行向左移动一个字符。可以发现每次开始的数组索引=行数i-1,不完整部分的字母个数为w%7,所以遍历的循环条件可以写为for(int j=i-1;j<i-1+w%7;j++)。但是不难发现这样会发生访问越界的情况,比如我们现在要访问索引为7(按照我们的逻辑应该访问的是L),但是数组str的最大索引为6(一共7个字母),所以为了防止访问越界,我们可以改为j%7

代码:

代码详解:

#include<bits/stdc++.h>
using namespace std;int main()
{int cnt=0;string str="LANQIAO";int h,w;cin>>h>>w;cnt+=h*(w/7)*2;  //每一行*完整的LANQIAO个数*完整的LANQIAO有两个A for(int i=1;i<=h;i++)  //遍历每一行 {for(int j=i-1;j<i-1+w%7;j++) //访问不完整部分的每一个字母 {if(str[j%7]=='A') //防止访问越界 {cnt++;}}}cout<<cnt<<endl;return 0;
}

相关文章:

  • 蓝桥杯 10. 凯撒加密
  • Pytest中的fixture装饰器详解
  • 优化PCB Via Stub系列(2) – 运用U-Turn Via设计破解阻抗匹配困境,改善信号完整性
  • android开发中的多线程、数据存储同步功能实现方案和应用场景
  • 人事管理系统6
  • Docker的简单使用(不全)
  • python数据分析(六):Pandas 多数据操作全面指南
  • 深度学习中的混合精度是什么?
  • 【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法
  • Java中的接口和抽象类
  • 模拟集成电路设计与仿真 : Feedback System
  • Sping中获取bean的方式总结-笔记
  • JR6001语音模块详解(STM32)
  • 【安全扫描器原理】ICMP扫描
  • 前端安全中的XSS(跨站脚本攻击)
  • 服务器和数据库哪一个更重要
  • 不同类型插槽的声明方法和对应的调用方式
  • k8s集群环境部署业务系统
  • 服务器主动发送响应?聊天模块如何实现?
  • 深入理解Spring AI框架的核心概念
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 69岁朱自强被查,曾任南京地铁总经理
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示
  • 初步结果显示,卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 西湖大学本科招生新增三省两市,首次面向上海招生
  • 人到中年为何腰围变粗?科学家发现腹部脂肪增加的细胞元凶