Codeforces Round #612 (Div. 2)B. Hyperset

限于喜欢 提交于 2020-02-08 04:52:34

原题链接
在这里插入图片描述
暴力构造后验证

#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;}
发布了44 篇原创文章 · 获赞 7 · 访问量 1832
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!