题意:给出一个n*m只含有BJHYN五个字符的矩阵,输出有多少个矩形,四个角都是同一个字母。
思路:枚举,一行一行的枚举,任意两行如果有num个位置对应字符相等,就可以形成1+2+3+ ...+num - 1个符合题意的矩形
#include <stdio.h>
char s[255][255];
char ss[] = "BJHYN";
int main(void){
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d%d",&n,&m);
for(int i = 0; i < n; i++){
scanf("%s",s[i]);
}
int ans = 0;
for(int i = 0; i < n; i++){
for(int j = i + 1; j < n; j++){
for(int k = 0; k < 5; k++){
int num = 0;
for(int p = 0; p < m; p++){
if(s[j][p] == ss[k] && s[i][p] == ss[k]){
num++;
}
}
ans += (num) * (num - 1) / 2;
}
}
}
printf("%d\n",ans);
}
return 0;
}