字符串统计

树状存储

从根节点向下一串是一个单词,红星是标记,是单词尾的标记

将二十六个字母映射为0~25的数字

#include<iostream>
#include<algorithm>
#include<cstring>
#include<stack>
#include<unordered_map>using namespace std;const int N = 100010;int son[N][26], idx, cnt[N];void insert(char str[])
{int p = 0;for (int i = 0; str[i]; i++){int u = str[i] - 'a';if (!son[p][u]) son[p][u] = ++idx;p = son[p][u];}cnt[p]++;
}int qurey(char str[])
{int p = 0;for (int i = 0; str[i]; i++){int u = str[i] - 'a';if (!son[p][u]) return 0;p = son[p][u];}return cnt[p];
}int main()
{int n;cin >> n;char op[2], str[N];while (n--){cin >> op >> str;if (op[0] == 'I')insert(str);else if (op[0] == 'Q')cout << qurey(str)<<endl;}return 0;
}

最大异或对

异或举例(异或也可称为不进位加法)

二进制比较,一样则为0,不一样就是1,没有的位数视为0来比较

左移运算

右移运算

#include<iostream>
#include<algorithm>
#include<cstring>
#include<stack>
#include<unordered_map>using namespace std;const int N = 100010, M = 3000000;
int son[M][2], idx, a[N];
int n;void insert(int x)
{int p = 0;for (int i = 30; i >= 0; i--){int& s = son[p][x >> i & 1];if (!s) s = ++idx;  //创建新节点p = s;}
}int qurey(int x)
{int res = 0, p = 0;for (int i = 30; i >= 0; i--){int s = x >> i & 1;if (son[p][!s]){res += 1 << i;p = son[p][!s];}else p = son[p][s];}return res;
}int main()
{int n, x;cin >> n;for (int i = 0; i < n; i++){cin >> a[i];insert(a[i]);}int res = 0;for (int i = 0; i < n; i++){res = max(res, qurey(a[i]));}cout << res;return 0;
}

Trie 字符串统计+最大异或对相关推荐

  1. 835. Trie字符串统计

    Trie字符串统计 #include <iostream> #include <cstring> using namespace std; int f[100101][29]; ...

  2. ~~Trie树(数据结构)(附题目:AcWing 835. Trie字符串统计)

    模板 int son[N][26], cnt[N], idx; // 0号点既是根节点,又是空节点 // son[][]存储树中每个节点的子节点 // cnt[]存储以每个节点结尾的单词数量// 插入 ...

  3. ACW 835. Trie字符串统计

    题目 思路 Tire 树适合存储和查询字符串 给每一个末尾节点打上标记,记录此节点出现了几次 如果查询的字符串最后一个节点没有打标记,也就是不在Tire树的末尾,即使前面都匹配了,我们也认为不存在这个 ...

  4. Go 学习笔记(51)— Go 标准库之 strings(字符串比较、字符串前后缀、字符串统计、字符串索引、字符串包含、字符串转换、字符串复制、字符串替换、字符串去除、字符串分割和连接)

    1. 概述说明 import "strings" strings 包实现了用于操作字符的简单函数. strings 包与 bytes 包中的函数用法基本一样. 2. 主要函数 2. ...

  5. C++描述杭电OJ 2017.字符串统计||

    C++描述杭电OJ 2017.字符串统计|| Problem Description 对于给定的一个字符串,统计其中数字字符出现的次数. Input 输入数据有多行,第一行是一个整数n,表示测试实例的 ...

  6. elasticsearch 条件去重_elasticsearch 笔记四 之聚合查询之去重计数、基础统计、百分位、字符串统计...

    这一节笔记还是聚合查询,以下是本节目录:去重统计 cardinality 基础统计 stats 百分位 percentiles 字符串统计 string_stats 1.去重统计 cardinalit ...

  7. 输入字符串统计字符串中每个字符出现的次数

    这是一个作业题. 我还遇到两次了- 利用map集合嘿哈哈搞定- import java.util.HashMap; import java.util.Scanner;public class Cacl ...

  8. 在线字符串长度计算,字符串统计工具

    在线字符串长度计算,字符串统计工具 在线字符串长度计算,字符串统计工具 本工具支持统计给定的字符串的总数,中文总数,英文总数,符号总数和数字总数等数据. 客户端实时计算,数据实时更新. https:/ ...

  9. 【Java例题】8.2 手工编写字符串统计的可视化程序

      2. 手工编写字符串统计的可视化程序. 一个Frame窗体容器,布局为null,两个TextField组件,一个Button组件. Button组件上添加ActionEvent事件监听器Actio ...

最新文章

  1. red hat DHCP服务器配置
  2. 最感动的一首现代诗(转)(修正了一点翻译)
  3. 详测 Generics Collections TQueue (3): OnNotify、Extract
  4. Java多线程知识小抄集(四)——完结
  5. 28. 智慧医疗--AI将成为医生的好帮手
  6. 如何通过C#开发一个媒体播放器(中)
  7. Java NIO SocketChannel+Buffer+Selector 详解(含多人聊天室实例)
  8. linux内核分析与应用 -- 内存管理(上)
  9. 图形2.5 Bump Map的改进(凹凸映射)
  10. Android打地鼠游戏案例
  11. 杨诚 湖南科技职业技术学院计算机,2013年全国职业院校技能大赛高职组获奖名单...
  12. 从实际项目出发,告诉你vue3到底香不香
  13. 详解Linux内核红黑树算法的实现 http://blog.csdn.net/npy_lp/article/details/7420689
  14. 如何演示扇形面积公式推导过程
  15. C/C++笔试题(很多)
  16. Guitar Pro2023吉他谱作曲和练习工具
  17. 位运算——左移右移运算详解
  18. php7安装详解(windows环境)
  19. 深度剖析互联网金融的系统逻辑
  20. 开放大学建筑构造计算机考试试题,精编最新国家开放大学电大《建筑构造》形考任务2试题及答案...

热门文章

  1. Sata Driver List
  2. 长春金融高等专科学校计算机系宿舍怎样,长春金融高等专科学校,寝室条件好的专科大学!...
  3. 关于中控矩阵、高清混合矩阵、高清画面分割等视频设备概念的简述
  4. python线条加粗_python 加粗
  5. 怎么推广引流?利用B站实现精准引流
  6. 银联卡现金转账类业务规则
  7. 计算机网络自顶向下方法笔记二
  8. mysql多表查询连接的种类_MySQL中基本的多表连接查询教程
  9. 便携式恒温冷藏自动采样器——助力水中病毒监测
  10. 重庆冲加二氧化碳气体(建设4L钢瓶)在哪儿