题意:
n个名字,m个能量字符串,每个名字的能量为其中含有能量字符串的种数(含有指有一个不连续子串与能量字符串相等),问每个名字的能量。n≤1000,m≤100。
题解:
暴力可过(似乎数据弱)。
代码:
1 #include2 #include 3 #include 4 #include 5 #include 6 #define inc(i,j,k) for(int i=j;i<=k;i++) 7 #define maxn 1010 8 using namespace std; 9 10 char name[maxn][maxn],ener[maxn/10][maxn/10]; int n,m;11 int main(){12 scanf("%d%d",&n,&m); inc(i,1,n)scanf("%s",name[i]+1); inc(i,1,m)scanf("%s",ener[i]+1);13 inc(i,1,n){14 int len1=strlen(name[i]+1),ans=0;15 inc(j,1,m){16 int l=0,len2=strlen(ener[j]+1);17 inc(k,1,len1){18 if(tolower(name[i][k])==tolower(ener[j][l+1])){19 l++; if(l==len2){ans++; break;}20 }21 }22 }23 printf("%d\n",ans);24 }25 return 0;26 }
20160918