hdu-1075-What Are You Talking About-(字典树)

2023-10-16 21:18
文章标签 字典 hdu talking 1075

本文主要是介绍hdu-1075-What Are You Talking About-(字典树),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

可以在字典树里面标记各种变量。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct list
{int leap;char str[100];struct list *next[26];
};
struct list *tree;
struct list *code()
{int i;struct list *p;p=new list();p->leap=0;for(i=0;i<26;i++){p->next[i]=NULL;}return p;
}
void in(struct list *q,char *str1,char *str2)
{int n,i,t;struct list *p;p=q;n=strlen(str2);for(i=0;i<n;i++){t=str2[i]-'a';if(p->next[t]==NULL)p->next[t]=code();p=p->next[t];}p->leap=1;strcpy(p->str,str1);
}
void search(struct list *q,char *str)
{int n,i,t;n=strlen(str);struct list *p;p=q;for(i=0;i<n;i++){t=str[i]-'a';if(p->next[t]==NULL)break;p=p->next[t];}if(p->leap==1&&i==n)printf("%s",p->str);elseprintf("%s",str);
}
int main()
{int i,j,n;char str1[100];char str2[100];char str[10000];tree=code();while(gets(str1)&&strcmp(str1,"START")!=0);while(scanf("%s",str1)&&strcmp(str1,"END")!=0){scanf("%s",str2);in(tree,str1,str2);}while(gets(str)&&strcmp(str,"START")!=0);while(gets(str)&&strcmp(str,"END")!=0){n=strlen(str);j=0;for(i=0;i<n;i++){if(!(str[i]>='a'&&str[i]<='z')){str1[j]='\0';search(tree,str1);printf("%c",str[i]);j=0;continue;}str1[j]=str[i];j++;}if(j!=0){str1[j]='\0';search(tree,str1);}printf("\n");}return 0;
}


这篇关于hdu-1075-What Are You Talking About-(字典树)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/220838

相关文章

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

python 字典d[k]中key不存在的解决方案

《python字典d[k]中key不存在的解决方案》本文主要介绍了在Python中处理字典键不存在时获取默认值的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录defaultdict:处理找不到的键的一个选择特殊方法__missing__有时候为了方便起见,

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

hdu 2093 考试排名(sscanf)

模拟题。 直接从教程里拉解析。 因为表格里的数据格式不统一。有时候有"()",有时候又没有。而它也不会给我们提示。 这种情况下,就只能它它们统一看作字符串来处理了。现在就请出我们的主角sscanf()! sscanf 语法: #include int sscanf( const char *buffer, const char *format, ... ); 函数sscanf()和

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

hdu 1166 敌兵布阵(树状数组 or 线段树)

题意是求一个线段的和,在线段上可以进行加减的修改。 树状数组的模板题。 代码: #include <stdio.h>#include <string.h>const int maxn = 50000 + 1;int c[maxn];int n;int lowbit(int x){return x & -x;}void add(int x, int num){while