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

只愿长相守 提交于 2020-01-13 06:08:54

😌 😌 😌

使用map查找检验

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define stop system("pause")
#define all(x) begin(x),end(x)
using ll = long long;using vi = vector<int>;
#define debug(v) cout<<#v<<":";cout<<v<<endl
using pii = pair<int, int>;const int MAXN = 2e5 + 10;
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define rep(i, n) for (int i = 0, i##len = (int)(n); i < i##len; ++i)
#define rpp(i, n) for (int i = 1, i##len = (int)(n); i <= i##len; ++i)
template <typename T> istream& operator>>(istream &is,vector<T> &v) {for(auto i = begin(v); i != end(v); i++) is>>*i;return is;}
template <typename T> ostream& operator<<(ostream &os,const vector<T> &v) {for(auto i = begin(v);i!=end(v);i++) os<<*i<<(i==end(v)-1?"\n":" ");return os;}
//-----------------------------------------------------------------------------------------------------------------------------------------



char solve(char i,char j)
{
	int s='S'+'T'+'E';
	if(i==j) return i;
	else return s-i-j;
}
signed main()
{
	int t;
	t=1;
	//cin>>t;
	while(t--)
	{
		int n,m;cin>>n>>m;
		string s[1555];
		map<string,int>mp;
		rep(i,n)
		{
			cin>>s[i];
			mp[s[i]]=1;
		}
		int ans=0;
		rep(i,n) for(int j=i+1;j<n;++j)
		{
			string tmp="";
			rep(k,m) tmp+=solve(s[i][k],s[j][k]);
			if(mp[tmp]) ++ans;
		}
		//debug(ans);
		cout<<ans/3<<endl;
	}
	//stop;
	return 0;
}


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!