求助 gnu_pbds trie
  • 板块学术版
  • 楼主FFTotoro
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/7/21 13:04
  • 上次更新2023/10/27 19:07:41
查看原帖
求助 gnu_pbds trie
556366
FFTotoro楼主2022/7/21 13:04

众所周知 trie 里封装了一个函数 prefix_range,其作用是生成以一字符串为前缀的字符串的所有字符串。返回值是一个 pair,从 first 遍历到 second 就可以得到所有字符串。

// 假设 t 是一个 trie
string s; cin>>s;
auto p=t.prefix_range(s);
for(auto it=p.first;it!=p.second;it++)
    cout<<*it<<endl;

这样就可以得到所有字符串。

但是,如果我要统计字符串的个数,用刚才的方法遍历然后变量 ++ 绝对超时。求问有没有一种办法(用 pbds),能在 O(1)O(1) 的时间内统计个数?

2022/7/21 13:04
加载中...