深圳神牛python培训_请教神牛_字符串hash

针对字符串hash 我早就听闻可以暴力的干一些事情。

比如 可以...

很多很多 实现O(n)求出 模式串在文本串出现的次数。

但是我不会这什么hash。

我会自然溢出字符串hash 嘿嘿 unsigned long long 溢出后可以 对2^32自动取%

采用p进制字符串hash 我想出现冲突的可能性是 99%

这道题呢 采用map 可以快速A但是hash 也是可以取得不错的效果的。

我想 可以随便搞了。sort稳重操作!

//#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define INF 168430090

#define mod 19260817

#define ull unsigned long long

using namespace std;

char buf[<

inline char getc()

{

return (fs==ft&&(ft=(fs=buf)+fread(buf,,<

}

inline int read()

{

int x=,f=;char ch=getchar();

while(ch''){if(ch=='-')f=-;ch=getchar();}

while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}

return x*f;

}

inline void put(int x)

{

x<?putchar ('-'),x=-x:;

int num=;char ch[];

while(x)ch[++num]=x%+'',x/=;

num==?putchar(''):;

while(num)putchar(ch[num--]);

putchar('\n');return;

}

const int MAXN=,maxn=;

int n,ans,c[maxn];

char a[MAXN];

struct wy

{

ull b;

int id;

friend int operator

{

if(x.b==y.b)return x.id

return x.b

}

}t[maxn];

int main()

{

//freopen("1.in","r",stdin);

n=read();

for(int i=;i<=n;i++)

{

scanf("%s",a+);

int len=strlen(a+);

t[i].id=i;

for(int j=;j<=len;j++)t[i].b=t[i].b*mod+a[j];

}

sort(t+,t++n);

for(int i=;i<=n;i++)if(t[i].b==t[i-].b)c[t[i].id]=;

for(int i=;i<=n;i++)if(c[i]==)put(i);

return ;

}

我居北海君南海,寄雁传书谢不能。

【字符串算法1】 再谈字符串Hash(优雅的暴力)

[字符串算法1] 字符串Hash(优雅的暴力) [字符串算法2]Manacher算法 [字符串算法3]KMP算法 这里将讲述  [字符串算法1] 字符串Hash 老版原文: RK哈希(Rabin_Ka ...

字符串Hash相关

其实也并不是什么特别难的算法,但是我个人实在是不太喜欢字符串之类的东西(字符串神马的真的是麻烦),于是一直拖着不想看,然后模板题之类的也懒得做. Hash的思想其实也没什么复杂的,就是给定一系列字符串 ...

&lbrack;CQOI2014&rsqb;&lbrack;bzoj3507&rsqb; 通配符匹配 &lbrack;字符串hash&plus;dp&rsqb;

题面 传送门 思路 0x01 KMP 一个非常显然而优秀的想法:把模板串按照'*'分段,然后对于每一段求$next$,'?'就当成可以对于任意字符匹配就行了 对于每个文本串,从前往后找第一个可以匹配的 ...

Clairewd&&num;39&semi;s message &sol;&sol;&sol; 字符串hash

题目大意: 给定字符串s 是26个字母对应的密文字母 给定字符串c1 是 密文+部分原文 原文可能缺损 要求将原文补全输出 利用s得到密文字母对应的原字母rs 利用rs翻译c1得到 原文+部分密文c2 ...

&lbrack;知识点&rsqb;字符串Hash

1.前言 字符串的几大主要算法都多少提及过,现在来讲讲一个称不上什么算法, 但是非常常用的东西——字符串Hash. 2.Hash的概念 Hash更详细的概念不多说了,它的作用在于能够对复杂的状态进行简 ...

【BZOJ-3555】企鹅QQ 字符串Hash

3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 1545  Solved: 593[Submit][Statu ...

C Primer Plus&lowbar;第四章&lowbar;字符串和格式化输入输出&lowbar;编程练习

Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...

POJ 1200 字符串HASH

题目链接:http://poj.org/problem?id=1200 题意:给定一个字符串,字符串只有NC个不同的字符,问这个字符串所有长度为N的子串有多少个不相同. 思路:字符串HASH,因为只有 ...

LA4671 K-neighbor substrings(FFT &plus; 字符串Hash)

题目 Source http://acm.hust.edu.cn/vjudge/problem/19225 Description The Hamming distance between two s ...

随机推荐

mysql python image

连接mysql数据库: cnx = mysql.connector.connect(user='joe', database='test') Connector/Python参数列表 Argument ...

课堂所讲整理:super和转型(修改版)

创建父类: package org.hanqi.pn0120; public class Father { private String name; private int age; public S ...

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化測试&OpenCurlyDoubleQuote;星云測试&OpenCurlyDoubleQuote;的使用攻略

沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化測试"星云測试"的使用攻略 世界进步那么快,非常多新奇的点子层出不穷,于是我们创业.我们做最酷的手机应用,做最轰炸的 ...

HTTP协议入门知识

HTTP超文本传输协议,是客户端浏览器和服务器通信的规范,是浏览器与服务器通信的协议,属于应用层的协议,web开发者了解HTTP协议非常重要.浏览器通过http协议请求服务器,完成请求服务器立刻关闭连 ...

微信小程序之----video视频播放

vidao 我现在看到的官方文档是不带danmu(弹幕)属性的,之前是有的,不过现在这个属性还可以生效.控制视频的状态可以根据video标签的唯一id得到一个对象实例.video组件并不具备actio ...

java基础知识总结一:

四种内部类 直接抛出异常 单例模式: 懒汉式单例.饿汉式单例.登记式单例     []关于内部类:  []关于异常: 直接捕捉并抛出异常:不需要给异常添加名字: if(i>10)throw ...

进程ID&lbrack;PID&lpar;Process ID&rpar;&rsqb;与端口号&lbrack;&lpar;Port ID&rpar;&rsqb;的联系

1.首先声明一点:PID不是端口(port id),而是Process ID进程号的意思. 2.那么,什么是进程号? 采集网友的意见就是: 进程号,是系统分配给么一个进程的唯一标识符.PID就是各进程 ...

省选模拟赛 cti

3 cti (cti.cpp/in/out, 1s, 512MB)3.1 Description有一个 n × m 的地图, 地图上的每一个位置可以是空地, 炮塔或是敌人. 你需要操纵炮塔消灭敌人.对 ...

Angularjs 数据循环

&lbrack;备忘&rsqb;Notification的实用

Intent resultIntent = null; if (!TextUtils.isEmpty(tid)){ resultIntent = new Intent("com.shijie ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值