HDU 1708 Fibonacci String(字符串模拟)

原创 2015年11月21日 14:07:00

题目地址:点击打开链接

思路:任意一个字符串都是由最初的第零个和第一个构成的,只要记录含有的第零个和第一个字符串的个数即可

AC代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <cmath>
#include <cctype>

typedef long long ll;
using namespace std;

struct node
{
    int x;
    int y;
}a[60];

char str1[40];
char str2[40];
int num[40];
int num1[40];

int main()
{
    int t,k,i;
    scanf("%d",&t);
    while(t--)
    {
        memset(num,0,sizeof(num));
        memset(num1,0,sizeof(num1));
        scanf("%s%s",str1,str2);
        scanf("%d",&k);
        a[0].x = 1;
        a[0].y = 0;
        a[1].x = 0;
        a[1].y = 1;
        for(i=2; i<=k; i++)
        {
            a[i].x = a[i-1].x + a[i-2].x;
            a[i].y = a[i-1].y + a[i-2].y;
        }
        int n = strlen(str1);
        int m = strlen(str2);
        for(i=0; i<n; i++)
        {
            num[str1[i]-'a']++;
        }
        for(i=0; i<26; i++)
        {
            num[i] *= a[k].x;
        }
        for(i=0; i<m; i++)
        {
            num1[str2[i]-'a']++;
        }
        for(i=0; i<26; i++)
        {
            num1[i] *= a[k].y;
        }
        for(i=0; i<26; i++)
        {
            num[i] += num1[i];
        }
        for(i=0; i<26; i++)
        {
            printf("%c:%d\n",'a'+i,num[i]);
        }
        printf("\n");
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU 1588 Gauss Fibonacci(矩阵快速幂+二分等比序列求和)

HDU 1588 Gauss Fibonacci(矩阵快速幂+二分等比序列求和) ACM 题目地址:HDU 1588 Gauss Fibonacci 题意:  g(i)=k*i+b...
  • hcbbt
  • hcbbt
  • 2014年08月05日 01:10
  • 2286

HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))

Fraction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total...
  • u010568270
  • u010568270
  • 2016年10月04日 13:27
  • 1093

HDU2532-字符串匹配

Engine Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • leolinsheng
  • leolinsheng
  • 2014年01月25日 15:52
  • 1067

HDU1283 最简单的计算机【模拟】

最简单的计算机 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su...
  • tigerisland45
  • tigerisland45
  • 2017年07月22日 10:03
  • 453

hdu 4699 模拟栈

5种操作 I x  光标前插入x这个数 D 删除光标前的数 L 光标左移一位 若已到最左边移不动,就不移 R 光标右移一位 若移不动,就不移了 Q k 输出光标前的序列 从1到k中最大连续序列和 ...
  • onepiecehuiyu
  • onepiecehuiyu
  • 2014年03月23日 21:19
  • 840

HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))

Car Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...
  • u010568270
  • u010568270
  • 2016年10月29日 17:41
  • 910

求Fibonacci数列的三种思路和算法(C++实现)

摘要:本文主要介绍求Fibonacci数列的三种思路和算法:二分递归、线性递归和动态规划法,并直观得体现了三者得运行效率的不同。...
  • icurious
  • icurious
  • 2016年11月12日 20:41
  • 1925

HDU 1860 统计字符

统计字符 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...
  • dxx_111
  • dxx_111
  • 2015年07月23日 19:35
  • 618

用string实现大整数加法

利用string来实现大数相加运算。
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016年04月26日 22:33
  • 2358

蓝桥杯- 入门训练 Fibonacci数列

问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。...
  • rl529014
  • rl529014
  • 2016年02月22日 13:19
  • 1191
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 1708 Fibonacci String(字符串模拟)
举报原因:
原因补充:

(最多只允许输入30个字)