CCF-Csp算法能力认证, 202303-1重复局面(C++)含解析

发布于:2024-05-10 ⋅ 阅读:(29) ⋅ 点赞:(0)

前言

推荐书目,在这里推荐那一本《算法笔记》(胡明),需要PDF的话,链接如下

「链接:https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd=6vdq# 提取码:6vdq”复制这段内容后打开手机迅雷App,查看更方便」

希望有大神能够提供改良意见,敬礼!

---------------------------------------------------------------------------------------------------------------------------------

题目

【题目描述】

【输入格式】

【输出格式】

【样例 1 输入】

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
1
2
2
1

【样例 1 解释】

【样例 2 输入】

【样例 2 输出】

【样例 2 解释】

【样例 3 输入】

【样例 3 输出】

【样例 3解释】

【子任务】

思路分析

本题的思想比较简单,主要思想就是对比,使用一个结构体存储一步的局面,使用该结构体对象数组来存储,下标就是对应的步数的局面。

装载一个数据后,马上遍历对比之前的所有内容,当其中两个局面全都相等result就+1。以此类推。

代码也很短。求大佬提供更好的办法。

代码如下:

#include <bits/stdc++.h>//万能头文件 
using namespace std;
 
struct station{
	
	string s[8];
};

int main() {
	int n=0;//n是走的步数 

	//const int N=10000;
	cin>>n; 
	
	struct station s1[n];
	
	int result =1;//存储结果 
	int issame=0;//存储对比结果,==8就是都相等 
	
	for(int i=0;i<n;i++){//输入 
		result=1;
		issame=0;
		for(int j=0;j<8;j++) {
			cin>>s1[i].s[j];
		}//装载成功 
		 
		
		for(int i1=0;i1<i;i1++){//对比之前的每一个 
			issame=0;
			for(int j=0;j<8;j++){
				if(s1[i1].s[j]==s1[i].s[j]){
					issame++;//相等记录+1 
				}
			} 
			if(issame==8){//记录为8则是复现 
				result++;
			}
		}
		cout<<result<<endl;
	}

	
	//cout<<result<<endl;
	
	
	return 0;
}


网站公告

今日签到

点亮在社区的每一天
去签到