HDU 1708

思路 :二位数组维护数目。

 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
",'a'+i,ans[k][i]);
41           cout<<endl;
42      }
43 }
原文地址:https://www.cnblogs.com/ITUPC/p/4668620.html