原题链接
暴力构造后验证
#include<iostream>#include<map>#include<algorithm>#include<string.h>#include<math.h>#include<vector>#include<queue>using namespace std;#define ll long long#define inf 0x3f3f3f3fmap<string, int>mp;string a[1505];char f(char a, char b){ if (a == b)return a; else if ((a == 'S' && b == 'E') || (b == 'S' && a == 'E'))return 'T'; else if ((a == 'S' && b == 'T') || (b == 'S' && a == 'T'))return 'E'; else if ((a == 'E' && b == 'T') || (b == 'E' && a == 'T'))return 'S';}int main(){ int n, m; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { cin >> a[i]; mp[a[i]] = i; } int ans = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { string p; for (int k = 0; k < m; k++) { p += f(a[i][k], a[j][k]); } if (mp[p] > j)ans++; } } cout << ans << endl;}
来源:CSDN
作者:Pinaoo
链接:https://blog.csdn.net/qq_44537408/article/details/104216259