求助!
查看原帖
求助!
1001535
封禁用户楼主2023/10/21 10:06
#include <iostream>

using namespace std;

void swap(int a,int b) {
	int t;
	t=a,a=b,b=t;
}
int get(int x,int y) {
	if(x==y)  return x;
	if(x>y) swap(x,y);
	if(x==0 and y==1) return 2;
	if(x==0 and y==2) return 1;
	return 0;
}
int m[50001],m_[20],a[3002][23];
int n,k,x,ans;
main() {
	m_[0]=1;
	for(int i=1;i<=12;i++) m_[i]=m_[i-1]*3;
	cin>>n>>k;
	for(int i=1;i<=n;i++) {
		cin>>x;
		int t=0,now=0;
		while(x) {
			a[i][++t]=x%10-1;
			now=now+a[i][t]*m_[t-1];
			x/=10;
		}
		m[now]++;
	}
	for(int i=1;i<=n;i++) 
		for(int j=1;j<=n;j++) 
			if(i!=j)  {
				int y=0;
				for(int j1=1;j1<=k;j1++) 
					y=y+get(a[i][j1],a[j][j1])*m_[j1-1];
					if(m[y]) ans++;
	}
	cout<<ans/6;
	return 0;
}

00 pts,求助!

2023/10/21 10:06
加载中...