Crazy Search

poj1200:http://poj.org/problem?id=1200

题意:给你一个有m种字符串,求长度为n的连续子串由多少种。

题解:网上的代码都是hash,但是本人觉得hash有问题,就是n,m稍微大点,hash的值都会爆出int,无法开数组来记录该串是否被记录。可能数据弱,结果hash竟然A了

。正确的解法是用set来存,把所有的hash值放进set,set有去重效果,最后求一下set的大小。但是这样结果是T了。不知道这题怎么解。一下是第一种代码。于是换别的,trie树来搞。

Crazy Search,布布扣,bubuko.com

时间: 2024-12-28 01:00:40

Crazy Search的相关文章

poj 1200 Crazy Search

题目: 链接:点击打开链接 题意: 输入n和nc,以及字符串s,输出长度为n的不同字串的个数. 算法: 思路: 用hash判重(hash值......),看了大牛的代码,对hash还是不甚理解.... 代码: #include<iostream> #include<cstring> #include<cstdio> #include<cstdio> using namespace std; #define MAXN 16000010 const int MA

POJ 1200 Crazy Search(Hash)

Description Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text. Such number could be the number of different substrings of a given size that exist in t

POJ-1200 Crazy Search(hash)

Crazy Search Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 27336   Accepted: 7641 Description Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a gi

[poj1200]Crazy Search(hash)

Crazy Search Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26713 Accepted: 7449 Description Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given

POJ 1200 Crazy Search (字符串hash)

题目大意: 分析长度为n的子串有多少种. 思路分析: 对于没出现的字符,将其分配一个数字. 然后将子串看做一个nc进制的数. 然后hash判断. #include <cstdio> #include <iostream> #include <algorithm> #include <map> #include <cstring> #include <string> using namespace std; bool vis[26666

hdu1381 Crazy Search(hash map)

题目意思: 给出一个字符串和字串的长度,求出该字符串的所有给定长度的字串的个数(不相同). 题目分析: 此题为简单的字符串哈hash map问题,可以直接调用STL里的map类.map<string,int> snum; AC代码: #include<iostream> #include<string> #include<map> using namespace std; int main() { int t,n,nc; cin>>t; whil

Hdu 1381 Crazy Search

Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1381 此题可以用哈希数组求解,至于什么是哈希,可以先看以下这篇推荐文章,写得挺不错的. 推荐:http://www.cnblogs.com/yangecnu/p/Introduce-Hashtable.html#undefined 首先是求key值,我采取了,求余法. key = value mod p 接着是确定value与p的值. p的值根据可能的组合数进行确定. 而value的值,为

Poj 1200 Crazy Search(字符串Hash)

Poj 1200 题意:给你一个n和m以及一个有m个不同字母组成的字符串,问有多少个长度为n的不同字符子串: 题解:以m为进制进行Hash.虽然是看了解题报告才会的但必须要理解并且学会运用:https://www.cnblogs.com/gj-Acit/archive/2013/05/15/3080734.html. #include<cstring>//别用set,set的添加是红黑树实现时间复杂度是O(logN),在这里会超时 #include<cstdio> #define

$Hdu1381\ Crazy\ Search$

前置芝士 :string 的 基本用法 string s = "hello world" ; string tmp(s,0,5) ; cout << tmp << endl ; 上面这一段代码 可以复制粘贴 然后改变 数字.(试试效果 \(string\ tmp(s,i,n);\) 赋初值 也就是说从 $s[i]?- To - ?s[i+n-1] $ 所以既然是这样 应该就有一种比较优秀的做法 \(O(S.length())\) 可海星. \[STL大法好啊\]