题目大意:给你n个棋盘的状态,输出这个状态是第几次出现
思路:把输入的每个棋盘的棋子保存到字符数组中,然后判断这个字符串在map中是否出现过,若出现过,则出现次数加一,否则把这个字符串的出现次数设置为1。
注意:status_map.count(pieces)中的pieces只能是字符数组,不能是字符串
#include <bits/stdc++.h>
using namespace std;
int n;
char pieces[64];
map<string, int> status_map;
int main()
{
cin >> n;
for (int i = 1; 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;
}