【CCF】第30次csp认证——202305-1重复局面

202305-1重复局面:

问题描述

国际象棋每一个局面可以用大小为 8×8 的字符数组来表示,其中每一位对应棋盘上的一个格子。六种棋子王、后、车、象、马、兵分别用字母 kqrbnp 表示,其中大写字母对应白方、小写字母对应黑方。棋盘上无棋子处用字符 * 表示。两个字符数组的每一位均相同则说明对应同一局面。

现已按上述方式整理好了每步棋后的局面,试统计每个局面分别是第几次出现。

输入格式

从标准输入读入数据。

输入的第一行包含一个正整数n,表示这盘棋总共有 n步。

接下来 8×n 行,依次输入第 1 到第 n 步棋后的局面。具体来说每行包含一个长度为 8 的字符串,每 8 行字符串共 64 个字符对应一个局面。

输出格式

输出到标准输出中。

输出共 n 行,每行一个整数,表示该局面是第几次出现。

样例输入

8
********
******pk
*****r*p
p*pQ****
********
**b*B*PP
****qP**
**R***K*
********
******pk
*****r*p
p*pQ****
*b******
****B*PP
****qP**
**R***K*
********
******pk
*****r*p
p*p*****
*b**Q***
****B*PP
****qP**
**R***K*
******k*
******p*
*****r*p
p*p*****
*b**Q***
****B*PP
****qP**
**R***K*
******k*
******p*
*****r*p
p*pQ****
*b******
****B*PP
****qP**
**R***K*
********
******pk
*****r*p
p*pQ****
*b******
****B*PP
****qP**
**R***K*
********
******pk
*****r*p
p*p*****
*b**Q***
****B*PP
****qP**
**R***K*
********
******pk
******rp
p*p*****
*b**Q***
****B*PP
****qP**
**R***K*

样例输出

1
1
1
1
1
2
2
1

样例说明

第 6、7 步后的局面分别与第 2、3 步后的局面相同。第 8 步后的局面与上图相对应。

子任务

输入数据满足 n ≤100。

提示

判断重复局面仅涉及字符串比较,无需考虑国际象棋实际行棋规则。

题解:

#include <bits/stdc++.h>
using namespace std;
int n;
char pieces[64];
map<string, int> status_map;
int main()
{cin >> n;for (int i=0;i<n;i++)  {for (int j=0;j<64;j++)  cin >> pieces[j];if (status_map.count(pieces))  {status_map[pieces] ++;}else {status_map[pieces] = 1;}cout << status_map[pieces] << endl;}return 0;
}

解析:

map<string, int> status_map; // 声明一个映射(map)容器status_map,用于存储棋子状态和对应的出现次数

if (status_map.count(pieces)) // 判断以pieces为键是否已经存在于status_map中{status_map[pieces] ++; // 如果存在,则将对应的值加1}else{status_map[pieces] = 1; // 如果不存在,则将键pieces插入到status_map中,并将对应的值设置为1}

题解中涉及到的知识点:C++常见容器一网打尽_c++容器

除去题目背景的意思,即记录输入的每一个字符串是第几次出现并在最后输出次数,可以用map容器记录每一个64位的字符串并判断是否已经存入map中来更新次数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80696.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文举论金:9.13黄金原油全面走势分析策略指导。

市场没有绝对&#xff0c;涨跌没有定势&#xff0c;所以&#xff0c;对市场行情的涨跌平衡判断就是你的制胜法宝。欲望&#xff01;有句意大利谚语&#xff1a;让金钱成为我们忠心耿耿的仆人&#xff0c;否则&#xff0c;它就会成为一个专横跋扈的主人。空头&#xff0c;多头都…

Acwing 829. 模拟队列

Acwing 829. 模拟队列 题目描述思路讲解代码展示 题目描述 思路讲解 队列是先进先出&#xff0c;类比排队买饭 代码展示 #include <iostream>using namespace std;const int N 100010;int m; int q[N], hh, tt -1;int main() {cin >> m;while (m -- ){string …

微信小程序——生命周期详解(代码解读)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

比较字符串和字符

Leetcode 93&#xff08;复原ip地址&#xff09; 比较字符串&#xff08;数字型&#xff09;大致有两种方法&#xff1a; 1、通过Integer.valueOf()转化成数字 class Solution {List<String> result new ArrayList<>();LinkedList<String> temp new Lin…

[uni-app] iOS/Android端 禁止单个页面侧滑返回的处理记录

需要禁止部分页面侧滑返回 iOS端 popGesture 但是实测后, 其实设置popGesture:none 是无效的 真正可以用的是这个 disableSwipeBack android端 别的方案没有逐一尝试, 这边可以在需要禁止的页面的 onBackPress onBackPress() {// 禁止侧滑(但注意也会禁止导航返回,导航返…

算法强训:第三十二天

文章目录 淘宝网店斐波那契凤尾一、淘宝网店IO链接 本题思路:本题是一道简单的语法题,按照题意要求即可。 #include <iostream> using namespace std; int main() {int arr[]={0,31,28,31,30,31,30,31,31,30,31,30,31};int year1,month1,day1,year2,month2,day2;while…

docker 存储挂载比较

docker存储概述 接触 docker 的朋友都知道&#xff0c;docker 镜像是以 layer 概念存在的&#xff0c;一层一层的叠加&#xff0c;最终成为我们需要的镜像。但该镜像的每一层都是 ReadOnly 只读的。只有在我们运行容器的时候才会创建读写层。文件系统的隔离使得&#xff1a; …

【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍

目录 注意&#xff1a;以下操作前提是要确保你输入法是英文模式 一、进入和退出各个模式的方法 1.命令模式 2.底行模式 3.插入模式 4.视图模式 5.替换模式 二、在命令模式中一些常用的操作 1.移动光标 2.删除文字 3.复制 4.替换 5.撤销上一次操作 6.更改 7.跳至…

华为云云耀云服务器L实例评测|评测使用

目录 一、云服务器的类型和功能 二&#xff0c;云服务器的优点 三&#xff0c;使用华为云耀云服务器使用 一、云服务器的类型和功能 企业可以从多种类型的云服务器中进行选择。三个主要模型包括&#xff1a; 公有云服务器&#xff1a;云服务器最常见的表达方式是虚拟机 (VM)&am…

进化算法、遗传编程和学习

一、说明 进化算法是一系列搜索算法&#xff0c;其灵感来自自然界&#xff08;达尔文主义&#xff09;进化过程。所有不同家庭成员的共同点是&#xff0c;通过应用受自然遗传学和自然选择启发的 算子&#xff0c;通过进化出最初 随机的候选解决方案群体来解决问题&#…

每日一博 - 闲聊Microservice Architecture

文章目录 概述图解小结 概述 典型微服务架构通常包括以下组件&#xff1a; 负载均衡器&#xff08;Load Balancer&#xff09;&#xff1a;用于将传入的流量分发到多个API网关实例以提高可用性。 内容分发网络&#xff08;CDN&#xff0c;Content Delivery Network&#xff0…

MFC中的类继承图的基本框架

一、类继承关系 从图中可知&#xff0c;在MFC中大多数的类都派生于CObject类&#xff0c;它的主要作用是为子类提供一些基本的功能&#xff0c;这些派生类构成了MFC应用程序的基本框架&#xff0c;它们各自的功能描述如表1所示。 派生类 功能描述 CCmdTarget 用于处理用户请…

Python list列表删除元素(4种方法)

在 Python列表中删除元素主要分为以下 3 种场景&#xff1a; 根据目标元素所在位置的索引进行删除&#xff0c;可以使用 del 关键字或者 pop() 方法&#xff1b;根据元素本身的值进行删除&#xff0c;可使用列表&#xff08;list类型&#xff09;提供的 remove() 方法&#xf…

Pytest系列-数据驱动@pytest.mark.parametrize(7)

简介 unittest 和 pytest参数化对比&#xff1a; pytest与unittest的一个重要区别就是参数化&#xff0c;unittest框架使用的第三方库ddt来参数化的 而pytest框架&#xff1a; 前置/后置处理函数fixture&#xff0c;它有个参数params专门与request结合使用来传递参数&#x…

CLIP 基础模型:从自然语言监督中学习可转移的视觉模型

一、说明 在本文中&#xff0c;我们将介绍CLIP背后的论文&#xff08;Contrastive Language-I mage Pre-Training&#xff09;。我们将提取关键概念并分解它们以使其易于理解。此外&#xff0c;还对图像和数据图表进行了注释以澄清疑问。 图片来源&#xff1a; 论文&#xff1a…

Layui + Flask | 实现注册、登录功能(案例篇)(08)

此案例内容比较多,建议滑到最后点击阅读原文,阅读体验更佳。后续也会录制案例视频,将在本周内上传到同名的 b 站账号。 已经看了 layui 表单相关的知识,接下来就可以实现注册功能,功能逻辑如下: 项目创建 新建 flask 项目下载 layui 文件,解压之后复制到指定文件编写前…

前缀和实例4(和可被k整除的子数组)

题目&#xff1a; 给定一个整数数组 nums 和一个整数 k &#xff0c;返回其中元素之和可被 k 整除的&#xff08;连续、非空&#xff09; 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&#xff1a; 输入&#xff1a;nums [4,5,0,-2,-3,1], k 5 输出&#xff1a;7 …

系统性能调优:提升服务器响应速度

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

95.qt qml-诺谦通用可扩展多功能QML界面

支持如下所示: 1.可扩展多功能交互&#xff0c;用户可以根据自己喜欢使用常用功能&#xff0c;针对多功能项目非常有用&#xff01;2.登录用户信息显示&#xff0c;历史消息显示&#xff0c;皮肤黑白风格切换 如下图所示: 自带一个功能界面&#xff0c;可以通过功能界面添加不…

第十三章总结

一.泛型 1.定义泛型类 泛型机制语法&#xff1a; 类名<T> 其中&#xff0c;T是泛型的名称&#xff0c;代表某一种类型。 【例13.6】创建带泛型的图书类 代码&#xff1a; 结果&#xff1a; 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyCla…