当前位置: 首页 > news >正文

【数据结构】字典树

模板 于是他错误的点名开始了

时间复杂度O(n∣S∣)O(n|S|)O(nS)

const int N=1e6+5,C=1e6+10,mod=1e9+7,inf=1e9+10;
struct trie{//计数数组 访问次数 孩子数组int cnt[N],tp[N],ch[N][30];int id=0;void insert(string s){//插入每一个字符串int p=0;for(auto c:s){int j=c-'a';if(!ch[p][j])ch[p][j]=++id;//孩子没有编号的安排编号p=ch[p][j];//跳到孩子//cnt[p]++放在这里 记录经过的次数}cnt[p]++;//记录每个串个数}void query(string s){//询问每个字符串状态int p=0;//和insert大致相同for(auto c:s){int j=c-'a';if(!ch[p][j])return cout<<"WRONG"<<endl,void();p=ch[p][j];}tp[p]++;if(cnt[p]==0)cout<<"WRONG"<<endl;else if(tp[p]>1)cout<<"REPEAT"<<endl;else cout<<"OK"<<endl;}
}t;
void solve() {int n,m;cin>>n;forr(i,1,n){string s;cin>>s;t.insert(s);}cin>>m;forr(i,1,m){string s;cin>>s;t.query(s);}cout<<t.id<<endl;
}

最长异或路径

const int N=1e6+5,C=1e6+10,mod=1e9+7,inf=1e9+10;
struct trie{int ch[N*32][2],id=0;void insert(int s){int p=0;reforr(i,0,30){int j=s>>i&1;//从高位到低位 从上到下if(!ch[p][j])ch[p][j]=++id;p=ch[p][j];}}int query(int s){int p=0,res=0;reforr(i,0,30){int j=s>>i&1;if(ch[p][!j]){res+=(1<<i);p=ch[p][!j];}else p=ch[p][j];}return res;}
}t;
vector<pii>e[N];
int sum[N];
void dfs(int now,int fa){for(auto [x,w]:e[now]){if(fa==x)continue;sum[x]=w^sum[now];dfs(x,now);}
}
void solve() {int n;cin>>n;forr(i,1,n-1){int u,v,w;cin>>u>>v>>w;e[u].push_back({v,w});e[v].push_back({u,w});}dfs(1,0);forr(i,1,n)t.insert(sum[i]);//把x->1的异或路径值放进去int ans=0;forr(i,1,n)ans=max(ans,sum[i]);forr(i,1,n)ans=max(ans,t.query(sum[i]));//两两最大异或和cout<<ans<<endl;
}
http://www.dtcms.com/a/434313.html

相关文章:

  • Rust Slint 实现控件拖动详细教程
  • 4. Pandas 数据选择、查询与修改
  • React新闻发布系统 角色列表篇
  • 网站常用插件wordpress自定义应用
  • 衡水手机网站建设淮安市盱眙县建设局网站
  • iPhone美区账号登录指南:轻松下载ChatGPT应用
  • AI大模型:(三)1.6 Dify工作流快速搭建数据可视化助手
  • 软件/网站安全需要以及解决方法
  • 做设备推广的网站学做网站用谁的书
  • python 做网站速度网站建设及托管合同
  • Coze源码分析-资源库-编辑工作流-后端源码-数据存储/安全/错误
  • 什么是Java反射机制?
  • 使用Docker安装Neo4j
  • 建立网站的步骤筝晃湖南岚鸿官网深圳专业建设网站哪个公司好
  • 20软件测试需求分析评审
  • SQL 多表查询实用技巧:ON 和 WHERE 的区别速览
  • 网站备案 内容央企八大设计院
  • 从汇编角度看C++优化:编译器真正做了什么
  • 分布式专题——25 深入理解网络通信和TCP、IP协议
  • UV python多版本管理
  • Schema是什么?
  • 许昌做网站优化wordpress 控制每页显示文章数
  • MAX31865模块和PT100实现温度测量使用配置笔记教程
  • Elasticsearch MCP 服务器:与你的 Index 聊天
  • 【ROS2学习笔记】话题通信篇:话题通信再探
  • 网络编程中“地址重用(SO_REUSEADDR)”
  • 汕头网站建设推广厂家wordpress 响应式图片
  • Rust的错误处理
  • 可视化地图
  • Rust与C接口交互