Luogu P3370 【模板】字符串哈希
方法很多,hash,双hash(个人想到一种三hash),挂链,还有STL;
map 乱搞 CODE
#include<iostream>
#include<map>
#include<string>
using namespace std;
int n,ans;
string s;
map <string,bool> ma;
int main()
{
cin>>n;
while (n--)
{
cin>>s;
if (ma[s]) continue;
ma[s]=; ans++;
}
cout<<ans;
return ;
}
hash就是将一个字符串映射成一个数。中间的方法有很多,不停地乘上一个seed然后%一下。
然后单hash炸了。
果断双hash!(hash twice)
#include<iostream>
#include<string>
using namespace std;
typedef long long LL;
LL n,ans;
const LL seed1=,mod1=,seed2=,mod2=;
string s;
bool f1[mod1+],f2[mod2+];
inline LL hash1(string s)
{
LL tot=;
for (int i=;i<s.size();++i)
tot=(tot*seed1+s[i])%mod1;
return tot;
}
inline LL hash2(string s)
{
LL tot=;
for (int i=;i<s.size();++i)
tot=(tot*seed2+s[i])%mod2;
return tot;
}
int main()
{
cin>>n;
while (n--)
{
cin>>s;
LL k1=hash1(s),k2=hash2(s);
if (f1[k1]&&f2[k2]) continue;
f1[k1]=f2[k2]=; ans++;
}
cout<<ans;
return ;
}
Luogu P3370 【模板】字符串哈希的更多相关文章
- 洛谷P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...
- 洛谷 P3370 【模板】字符串哈希
洛谷 P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的 ...
- 洛谷—— P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好 ...
- 洛谷 P3370 【模板】字符串哈希 (set||map||哈希||字典树(mle)
P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. #友情提醒:如果真的想好 ...
- 洛谷 P3370 字符串哈希 (模板)
<题目链接> <转载于 >>> > 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共 ...
- 洛谷——P3370 【模板】字符串哈希
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- AC日记——【模板】字符串哈希 洛谷 3370
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- 洛谷P3370 && 字符串哈希讲解
字符串哈希 寻找长度为n的主串s中的的匹配串T(长度为m)出现的位置或者次数问题属于字符串匹配问题. 朴素(一般)的想法就是从一个字符串的头开始for循环查找,当查找的一个字符与匹配串首字符相同时,往 ...
- luoguP3370 【模板】字符串哈希 [hash]
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- Luogu P4503 [CTSC2014]企鹅QQ(字符串哈希)
P4503 [CTSC2014]企鹅QQ 题面 题目背景 \(PenguinQQ\) 是中国最大.最具影响力的 \(SNS(Social Networking Services)\) 网站,以实名制为 ...
随机推荐
- Java虚拟机(三)垃圾标记算法与Java对象的生命周期
前言 这一节我们来简单的介绍垃圾收集器,并学习垃圾标记的算法:引用计数算法和根搜索算法,为了更好的理解根搜索算法,会在文章的最后介绍Java对象在虚拟机中的生命周期. 1.垃圾收集器概述 垃圾收集器( ...
- maven 学习笔记--仓库,聚合和继承,私服搭建
仓库 http://blog.csdn.net/wanghantong/article/details/36427433 聚合和继承 http://www.cnblogs.com/xdp-gacl/p ...
- python常用模块之logging模块
#日志级别 : noset debug info warning error critical #控制台默认的级别是warning的. import logging logging.basicConf ...
- Oracle EBS PO rcv_shipment_headers 数据缺失
Datafix : How to Recreate Missing Receipt or Shipment Header Records (RCV_SHIPMENT_HEADERS table) (D ...
- Linux命令(自学)
1.立刻关机: shutdown -h now 2.立刻重启: shutdown -r now reboot 3.注销: logout 4.进入vi编辑器,写一个hello的java程序: vi he ...
- VS2010使用Release进行调试的三个必须设置选项
How to: Debug a Release Build You can debug a release build of an application. To debug a release bu ...
- MySQL基础之 索引
MySQL索引讲解 索引的好处: MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么 ...
- git pull与本地修改冲突
1.先将本地修改存储起来 $ git stash 这样本地的所有修改就都被暂时存储起来 . $ git stash list 可以看到保存的信息: git stash暂 ...
- java疯狂讲义--摘要
1.一个java文件中可以有多个类,但是只能有一个public类,并且该类需要与文件同名 第6章 对象的软,弱和虚引用 1.强引用---创建一个对象,并把这个对象赋给一个引用变量.一个对象被一个以上的 ...
- rlwrap与历史命令
# yum install rlwrap $ vi .bash_profile alias sqlplus='rlwrap sqlplus'alias rman='rlwrap rman' 或者 l ...