Hiho 1014 题目

hiho一下第二周 Hihocoder #1014 : Trie树

?

参考链接:http://m.blog.csdn.net/blog/u012662688/38354777

?

Java实现:

?

import java.io.BufferedInputStream;

import java.util.Scanner;

?

?

public class Main {

????public static void main(String[] args) {????????

????????Scanner sc = new Scanner(new BufferedInputStream(System.in));

????????

????????//构建字典树

????????int n = sc.nextInt();????????

????????Trie root = new Trie();//构建一棵空树,不断的往里面放节点。

????????for(int i = 0;i<n;i++){

????????????insert(root, sc.next());

????????}

????????
?

????????

????????//查找字典树

????????int m = sc.nextInt();????????

????????for(int i = 0;i<m;i++){????

????????????System.out.println(find(root, sc.next()));????

????????}

????}

?

????//创建字典树

????public static void insert(final Trie root, String str) {

????????Trie cur = root;

????????for (char ch : str.toCharArray()) {

????????????int idx = ch - ‘a‘;

????????????if (cur.child[idx] == null) {

????????????????cur.child[idx] = new Trie();

????????????}

????????????cur = cur.child[idx];????????????

????????????cur.num++;

????????}

????}

?

????//查找字典树

????public static int find(final Trie root, String str) {

????????Trie cur = root;

????????for (char ch : str.toCharArray()) {

????????????int idx = ch - ‘a‘;

????????????if (cur.child[idx] == null) {

????????????????return 0;

????????????}

????????????cur = cur.child[idx];

????????}

????????return cur.num;

????}

}

?

class Trie {

????Trie[] child;????

????int num;

????public Trie() {

????????child = new Trie[26];

????}

}

时间: 2024-12-28 14:41:44

Hiho 1014 题目的相关文章

hiho #1014 : Trie树 (字典树的建立和查找)

#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:"小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?" 身经百战的小Ho答道:"怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有

hiho #1014 : Trie树

#1014 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在这个词典里面找到以这个字符串开头的所有单词呢?” 身经百战的小Ho答道:“怎么会不能呢!你每给我一个字符串,我就依次遍历词典里的所有单词,检查你给我的字

hiho一下 第二周&amp;第四周:从Trie树到Trie图

hihocoder #1014 题目地址:http://hihocoder.com/problemset/problem/1014 hihocoder #1036 题目地址: http://hihocoder.com/problemset/problem/1036 trie图其实就是trie树+KMP #1014trie树 #include<stdio.h> #include <algorithm> #include <cstring> #include <str

[BZOJ 1014] [JSOI2008] 火星人prefix 【Splay + Hash】

题目链接:BZOJ - 1014 题目分析 求两个串的 LCP ,一种常见的方法就是 二分+Hash,对于一个二分的长度 l,如果两个串的长度为 l 的前缀的Hash相等,就认为他们相等. 这里有修改字符和插入字符的操作,所以用 Splay 来维护串的 Hash 值. 一个节点的值就是它的子树表示的字串的 Hash 值. 使用 unsigned long long 然后自然溢出就不需要 mod 了,速度会快很多. 代码 #include <iostream> #include <cstd

hdu 1014.Uniform Generator 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目意思:给出 STEP 和 MOD,然后根据这个公式:seed(x+1) = [seed(x) + STEP] % MOD,问是否在一个周期里可以产生 0 - mod-1 的数.可以的话输出 "Good Choice", 否则输出 "Bad Choice". 好久以前留下来的问题了,以前觉得题目意思又长,以为是很难的题目......今天看<短码之美>

hihoCoder#1135

刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 The circus clown Sunny has a magic box. When the circus is performing, Sunny puts some balls into the box one by one. The balls are in three colors: red(R)

hihoCoder#1082

刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlhx每天都在被沼跃鱼刷屏,因此他急切的找到了你希望你写一个程序屏蔽所有句子中的沼跃鱼(“marshtomp”,不 区分大小写).为了使句子不缺少成分,统一换成 “fjxmlhx” . 输入 输入包括多行. 每行是一个字符串,长度不超过200. 一行的末尾与下一行的开头没有关系. 输出 输出包含多行,为

hihoCoder#1094

刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He does not know where he is. He does not know which direction is north. Fortunately, Little Hi has a map of the city. The

动态规划:背包问题

例题:装箱问题 ( http://www.wikioi.com/problem/1014/  ) 题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入描述 一个整数v,表示箱子容量,一个整数n,表示有n个物品 接下来n个整数,分别表示这n 个物品的各自体积 输出描述 一个整数,表示箱子剩余空间. 样例输入 24 6 8 3 12 7 9 7