链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4099

要用c++交哦, G++ MLE

不是很懂,先粘上慢慢学习

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std; #define N 100 struct node
{
int ID;
node *next[];
}*Head; char c[], str[][]; void Add(char a[], char b[], char back[]) ///计算a+b, 结果存入c
{
int i, j, k;
int x, y, z;
int up; i = strlen(a)-;
j = strlen(b)-;
k = ;
up = ; while(i>= || j>=)
{
if(i<) x = ;
else x = a[i]-''; if(j<) y = ;
else y = b[j]-''; z = x+y+up;
c[k++] = z%+'';
up = z/;
i--;
j--;
}
if(up>) c[k++] = up+'';
for(i=; i<k; i++)
back[i] = c[k--i];
back[k] = '\0';
} void Tree_Insert(char str[], int Index)///插入单词
{
node *t, *s = Head;
int i;
int len = strlen(str); for(i=; i<len && i<; i++)
{
int id = str[i]-'';
if(s->next[id]==NULL)
{
t = new node();
for(int i=;i<;i++)t->next[i]=NULL;
t->ID = -;
s->next[id] = t;
}
s = s->next[id];
if(s->ID<) s->ID = Index;
}
} int Tree_Find(char str[])
{
node *s=Head;
int count, i;
int len = strlen(str); for(i=; i<len; i++)
{
int id = str[i]-'';
if(s->next[id]==NULL)
return -;
else
{
s = s->next[id];
count = s->ID;
}
}
return count;
} void Tree_Del(node *p)
{
for(int i=; i<; i++)
{
if(p->next[i]!=NULL)
Tree_Del(p->next[i]);
}
free(p);
} int main()
{
Head = new node();
for(int i=;i<;i++)Head->next[i]=NULL; Head->ID = -;
str[][] = '';
str[][] = ;
Tree_Insert(str[], ); str[][]='';
str[][]=;
Tree_Insert(str[], ); for(int i=; i<; i++)
{
int len1 = strlen(str[]);
int len2 = strlen(str[]); if(len2>)
{
str[][len2-]=;
str[][len1-]=;
}
Add(str[], str[], str[]); /// printf("%s\n",str[2]); Tree_Insert(str[], i);
strcpy(str[], str[]);
strcpy(str[], str[]); /// for(int i=0;i<100;i++)str[0][i]=str[1][i];
/// for(int i=0;i<100;i++)str[1][i]=str[2][i];
} int t, iCase=;
char str1[];
scanf("%d", &t);
while(t--)
{
scanf("%s", str1);
printf("Case #%d: %d\n", iCase++, Tree_Find(str1));
} Tree_Del(Head);
return ;
}

(字典树)Revenge of Fibonacci -- HDU -- 4099的更多相关文章

  1. 字典树 && 例题 Xor Sum HDU - 4825 (板子)

    一.字典树描述:Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优 ...

  2. BestCoder10 1001 Revenge of Fibonacci(hdu 5018) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5018 题目意思:给出在 new Fibonacci 中最先的两个数 A 和 B(也就是f[1] = A ...

  3. HDU 4099 Revenge of Fibonacci(高精度+字典树)

    题意:对给定前缀(长度不超过40),找到一个最小的n,使得Fibonacci(n)前缀与给定前缀相同,如果在[0,99999]内找不到解,输出-1. 思路:用高精度加法计算斐波那契数列,因为给定前缀长 ...

  4. hdu 4099 Revenge of Fibonacci 字典树+大数

    将斐波那契的前100000个,每个的前40位都插入到字典树里(其他位数删掉),然后直接查询字典树就行. 此题坑点在于 1.字典树的深度不能太大,事实上,超过40在hdu就会MLE…… 2.若大数加法时 ...

  5. hdu 4099 Revenge of Fibonacci Trie树与模拟数位加法

    Revenge of Fibonacci 题意:给定fibonacci数列的前100000项的前n位(n<=40);问你这是fibonacci数列第几项的前缀?如若不在前100000项范围内,输 ...

  6. UVA - 12333 Revenge of Fibonacci 高精度加法 + 字典树

    题目:给定一个长度为40的数字,问其是否在前100000项fibonacci数的前缀 因为是前缀,容易想到字典树,同时因为数字的长度只有40,所以我们只要把fib数的前40位加入字典树即可.这里主要讨 ...

  7. UVa 12333 - Revenge of Fibonacci manweifc(模拟加法竖式 & 字典树)

    题意: 给定n个(n<=40)数字, 求100000个以内有没有前面n个数字符合给定的数字的fibonacci项, 如果有, 给出最小的fibonacci项, 如果没有, 输出-1. 分析: 可 ...

  8. hdu 4099 Revenge of Fibonacci 大数+压位+trie

    最近手感有点差,所以做点水题来锻炼一下信心. 下周的南京区域赛估计就是我的退役赛了,bless all. Revenge of Fibonacci Time Limit: 10000/5000 MS ...

  9. UVA-12333 Revenge of Fibonacci(竖式加法模拟 & 字典树)

    题目: 给出一个斐波那契数字的前缀,问第一个有这个前缀的数字在斐波那契数列中是第几个. 思路: 紫书提示:本题有一定效率要求.如果高精度代码比较慢,可能会超时. 利用滚动数组和竖式加法来模拟斐波那契相 ...

随机推荐

  1. linux Xinetd服务简介

    http://www.chuanke.com/course/72351180839190528______.html 1.什么是xinetdextended internet daemonxinetd ...

  2. 写给C#程序员的javascript说明: 各类型变量和prototype

    在javascript中存在类似的私有变量 公有变量和静态变量 私有: var AA=function(){ var aa="im private"; }; 私有变量通过闭包访问. ...

  3. String..lastIndexOf(".") 返回-1的思考

    String s = tableName.substring(tableName.lastIndexOf(".") + 1); 如果有tableName有'.',那么返回正确的截取 ...

  4. Java 简单UDP通信

    Java手册 java.net Class DatagramSocket java.lang.Object java.net.DatagramSocket All Implemented Interf ...

  5. [原]Android 开发第一步

    使用 android-studio 开发 写文章时的最新 Android-Studio 程序下载:https://dl.google.com/dl/android/studio/ide-zips/3. ...

  6. Python3 使用requests请求,解码时出错:'utf8' codec can't decode byte 0x8b in position 1: invalid start byte

    requests请求的响应内容能够通过几个属性获得: response.text 为解码之后的内容,解码会根据响应的HTTP Header中的Content-Type选择字符集.例如 "'C ...

  7. 网页中显示pdf的方法

    非常好的在网页中显示pdf的方法 今天有一需求,要在网页中显示pdf,于是立马开始搜索解决方案,无意中发现一个非常好的解决方法,详见http://blogs.adobe.com/pdfdevjunki ...

  8. Loadrunner11在新建Microsoft Word 报告时提示指定的转换无效

    HP Loadrunner11中文教程的学习基本已经结束,最后困扰我的就是这个在创建Microsoft Word 报告时不停的提示“指定的转换无效”的问题.在网上搜索了好长时间,好多朋友回答说没有生成 ...

  9. python打造文件包含漏洞检测工具

    0x00前言: 做Hack the box的题.感觉那个平台得开个VIp 不然得凉.一天只能重置一次...mmp 做的那题毒药是文件包含漏洞的题,涉及到了某个工具 看的不错就开发了一个. 0x01代码 ...

  10. 搜索框请输入关键字 onfocus 和 onblur

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...