目標 解75%
想法是
用一個 走訪 陣列 visit[26]={0};
每個字母字串拜訪了幾個 字母
如果有 就為1
每兩個字串的 拜訪字母數 如果剛好互補
則互補cp組 +1
只是如何實際寫出呢?
以下是錯誤的
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
using namespace std;
int main(){
string str[10000];
long long int m,n;
cin>>m>>n;
for(int i=0;i<n;i++){
cin>>str[i];
}
int j;
int sum=0;
int sum1[10000]={0};
for(int i=0;i<m;i++){
sum+=i;
}
int visit[26]={0};
int visitnum[10000]={0};
for(int i=0;i<n;i++){
for(int k=0;k<str[i].length();k++){
for( j=0;j<26;j++) {
if(visit[j]==0){
if((str[i].at(k)-'A')==j){
visit[j]=1;
visitnum[i]++;
}
}
}
}
memset(visit,0,sizeof(visit));
}
for(int i=0;i<n;i++){
if(visitnum[i]==m){
visitnum[i]=1000;
}
}
int cpnum=0;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<=n-1;j++){
if(visitnum[i]+visitnum[j]==m)
cpnum++;
}
}
cout<<cpnum<<endl;
}