CCF CSP认证-202305

1.重复局面:

题目背景

国际象棋在对局时,同一局面连续或间断出现3次或3次以上,可由任意一方提出和棋。

问题描述

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

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

核心思想:其实就是给了许多个字符串矩阵,让你判断它以前有没有出现过,我们读入的时候可以把矩阵转换成为一个字符串,然后用map容器把字符串存起来就可以得到答案。

#include
#include
using namespace std;
map mp1;
string c[100010];
int main()
{int t;scanf("%d",&t);for(int i=1;i<=t;i++){string s1="";for(int i=1;i<=8;i++){string s2="";cin>>s2;s1+=s2;}mp1[s1]++;if(i!=t)cout<


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部