• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
sn-genuine
博客园    首页    新随笔    联系   管理    订阅  订阅

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

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

题目描述

小蓝要画一个 LANQIAO 图形,并把这个图形做成一个旗帜。图形的形状为一个 \(h \times w\) 的矩形,其中 \(h\) 表示图形的高,\(w\) 表示图形的宽。当 \(h = 5, w = 10\) 时,图形如下所示:

LANQIAOLAN
ANQIAOLANQ
NQIAOLANQI
QIAOLANQIA
IAOLANQIAO

图形的规律是:第一行用 LANQIAO 重复填入,第二行开始,每行向左移动一个字符,用 LANQIAO 重复填入。

小蓝需要把图形中的每个字母都剪出来,以粘贴到旗帜上,他想知道,给定图形的高和宽,图形中有多少个 A。

输入格式

输入的第一行包含两个正整数 \(h, w\),用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

输入输出样例 #1

输入 #1

5 10

输出 #1

14

说明/提示

评测用例规模与约定

  • 对于 \(30\%\) 的评测用例,\(h = 1\),\(1 \leq w \leq 20\);
  • 对于 \(60\%\) 的评测用例,\(1 \leq h, w \leq 20\);
  • 对于所有评测用例,\(1 \leq h, w \leq 100\)。

题目链接

https://www.luogu.com.cn/problem/P12340

解题思路

  1. 第i行相对于原始字符串向左偏移i位,该行第j列对应的原始字符串下标为 pos=(i+j)%7

代码实现

// 模拟 
#include<bits/stdc++.h>
using namespace std;
const string s="LANQIAO";
int cnt;
int main()
{
	int h,w;cin>>h>>w;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			int pos=(i+j)%7;
			if(s[pos]=='A')cnt++;
		}
	}
	cout<<cnt;
	return 0;
}
posted on 2026-09-20 18:25  SobNov  阅读(12)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3