#include<bits/stdc++.h>
using namespace std;
int n,m,a[505][505],b[505][505],num[5],ans=1;
bool vis[505][505][505];
bool check(int x,int y,int z){
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
vis[a[i][x]][a[i][y]][a[i][z]]=true;
for(int i=1;i<=n;i++)
if(vis[b[i][x]][b[i][y]][b[i][z]]==true)
return false;
return true;
}
int main(){
cin>>n>>m;
num['A']=1;
num['G']=2;
num['C']=3;
num['T']=4;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
char x;
cin>>x;
a[i][j]=num[x];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
char x;
cin>>x;
b[i][j]=num[x];
}
for(int i=1;i<=m-2;i++)
for(int j=i+1;j<=m-1;j++)
for(int k=j+1;k<=m;k++)
if(check(i,j,k))
ans++;
cout<<ans;
return 0;
}
此代码样例过了,可是全部TLE(超了8.56s)