CDOJ 1092 韩爷的梦 字符串哈希
来源:互联网 发布:全宋词软件下载 编辑:程序博客网 时间:2024/05/19 18:38
就是字符串哈希求个数,因为内存限制很小,所以只能把所有的哈希值存下来,然后排序,去重,就可以
不知为什么,我的p选的是1e9+7,mod是1e9+9,就会WA,然后两个换一下。p是1e9+9,mod是1e9+7,就过了,2333
原来字符串哈希也不难。。。。去年的时候,,,还是十分懵逼的小白。。。。什么都看不懂。。。
代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <string>#include <algorithm>using namespace std;#define maxn 105#define p 1000000009#define mod 1000000007#define num 20000char ch[maxn];int cnt[num];long long hashi[maxn];int idx[260];void init_idx(){for (char i = 'a'; i <= 'z'; ++i)idx[i] = i - 'a' + 1;for (int i = 'A'; i <= 'Z'; ++i)idx[i] = i - 'A' + 27;for (int i = '0'; i <= '9'; ++i)idx[i] = i - '0' + 53;}int main(){//freopen("input.txt", "r", stdin);int ans = 0, n;init_idx();for (int i = 0; i < num; ++i){scanf("%s", ch);n = strlen(ch);for (int j = 1; j <= n; ++j)hashi[j] = (hashi[j - 1] * p + idx[ch[j - 1]]) % mod;cnt[i] = hashi[n];}sort(cnt, cnt + num);printf("%d\n", unique(cnt, cnt + num) - cnt);//while (1);return 0;}
0 0
- CDOJ 1092 韩爷的梦 字符串哈希
- CDOJ 1092 韩爷的梦 (字符串Double Hash)
- CDOJ 1145 韩爷的情书
- CDOJ 1066 Palindromic String 字符串哈希/马拉车算法
- cdoj柱爷的下凡
- CDOJ:渐变字符串
- 【CDOJ】渐变字符串
- CDOJ 1087 基爷的中位数 二分
- 【CDOJ 1323】柱爷的下凡
- 【CDOJ 1321】柱爷的恋爱
- CDOJ的使用
- 【cdoj 1323】柱爷的下凡 dp打表预处理
- CDOJ 1347柱爷的矩阵(二维dp)
- CDOJ 1321柱爷的恋爱 (区间dp)
- CDOJ 木杆上的蚂蚁
- cdoj 1354 柱爷很忙
- 【cdoj 1321】柱爷的恋爱 区间dp记忆化搜索
- CDOJ 输出前m大的数据
- 实时配置桌面上的AppWidget UI Layout(RemoteViews.addViews)(待修正)
- iOS_Block界面传值
- 06.3.11(晴)
- 笔试题8. n个骰子的问题
- 博主自我介绍
- CDOJ 1092 韩爷的梦 字符串哈希
- 第一篇 理解线程
- Blink内存分配器PartitionAlloc
- java笔记-2
- A1100. Mars Numbers (20)
- SeDuMi 安装与测试
- Unity插件 DOTween基础
- 分布式Web应用----Java动态代理技术实现原理分析
- java笔记-3