hdu 1251 统计难题(字典树)
来源:互联网 发布:cms监控软件安卓手机版 编辑:程序博客网 时间:2024/06/07 19:44
题目链接:hdu 1251 统计难题
题目大意:略。
解题思路:字典树水题,插入单个单词的时候,对路径上的节点+1,查询时返回最后落到节点的计数。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 1000005;const int sigma_size = 26;struct Tire { int sz; int g[maxn][sigma_size]; int val[maxn]; void init(); int idx(char ch); void insert(char* s); int find(char* s);}S;char op[maxn];int main () { S.init(); while (gets(op), strcmp(op, "")) S.insert(op); while (gets(op)) printf("%d\n", S.find(op)); return 0;}void Tire::init() { sz = 1; val[0] = 0; memset(g[0], 0, sizeof(g[0]));}int Tire::idx (char ch) { return ch - 'a';}int Tire::find(char* s) { int u = 0, n = strlen(s); for (int i = 0; i < n; i++) { int v = idx(s[i]); if (g[u][v] == 0) return 0; u = g[u][v]; } return val[u];}void Tire::insert(char* s) { int u = 0, n = strlen(s); for (int i = 0; i < n; i++) { int v = idx(s[i]); if (g[u][v] == 0) { val[sz] = 0; memset(g[sz], 0, sizeof(g[sz])); g[u][v] = sz++; } u = g[u][v]; val[u]++; }}
0 0
- HDU 1251 统计难题 字典树
- HDU 1251统计难题(字典树)
- [字典树 ]hdu 1251 统计难题
- 统计难题 hdu 1251 字典树
- hdu 1251 统计难题 字典树
- HDU 1251 统计难题 -- 字典树
- HDU 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu 1251 统计难题(字典树)
- hdu-1251-统计难题(字典树)
- hdu 1251 统计难题 (字典树)
- HDU 1251统计难题 字典树
- hdu 1251 统计难题 (字典树)
- HDU 1251 统计难题(字典树)
- hdu 1251 统计难题 字典树
- hdu 1251 统计难题 字典树
- hdu 1251 统计难题 (字典树)
- 中位数的中位数
- linux下编译安装lua
- UVA 11889-Benefit(数学_快速枚举因子)
- flume跨机房数据传输
- 比真机还快的Android模拟器——Genymotion
- hdu 1251 统计难题(字典树)
- 新入行程序员须知的8件事
- 机器学习模式识别数据挖掘数据集下载链接
- nyist 860 又见01背包
- msf终端命令
- 24位图转1位位图
- HDU1196_Lowest Bit【位运算】【水题】
- sdut 6-1 多态性与虚函数
- fedora 相关