思路 :二位数组维护数目。
1 #include<iostream> 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<memory.h> 5 #include<string.h> 6 #include<algorithm> 7 #include<cmath> 8 #include<stack> 9 const int MAXX= 50000; 10 const int mod=1e9+7; 11 using namespace std; 12 typedef long long ll; 13 int ans[51][27]; 14 char str1[31],str2[31]; 15 int k; 16 int n; 17 int main() 18 { 19 scanf("%d",&n); 20 while(n--) 21 { 22 memset(ans,0,sizeof(ans)); 23 scanf("%s",str1); 24 scanf("%s",str2); 25 scanf("%d",&k); 26 int len1=strlen(str1); 27 int len2=strlen(str2); 28 for(int i=0;i<len1;i++) 29 { 30 ans[0][str1[i]-‘a‘]++; 31 } 32 for(int i=0;i<len2;i++) 33 ans[1][str2[i]-‘a‘]++; 34 for(int i=2;i<51;i++) 35 for(int j=0;j<26;j++) 36 { 37 ans[i][j]=ans[i-1][j]+ans[i-2][j]; 38 } 39 for(int i=0;i<26;i++) 40 printf("%c:%d\n",‘a‘+i,ans[k][i]); 41 cout<<endl; 42 } 43 }
时间: 2024-10-05 03:00:34