赛前训练4 extra 字典树

news/2025/10/2 20:04:15/文章来源:https://www.cnblogs.com/XOF-0-0/p/19123941

A

板子。

实现
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#define int long long
using namespace std;const int N=1e6+5,M=48;
int n,m,tot;
string s[N];
int trie[N][M],exist[N];void insert(string s){int cur=0;for(int i=0;i<s.size();i++){int ch=s[i]-'a';if(!trie[cur][ch])trie[cur][ch]=++tot;cur=trie[cur][ch];}exist[cur]++;
}
int search(string s){int cur=0,ans=0;for(int i=0;i<s.size();i++){int ch=s[i]-'a';if(!trie[cur][ch])return ans;cur=trie[cur][ch];ans+=exist[cur];}return ans;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n>>m;for(int i=1;i<=n;i++)cin>>s[i],insert(s[i]);while(m--){string t;cin>>t;cout<<search(t)<<'\n';}return 0;
}

B

01-trie 板子。

实现
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#define int long long
using namespace std;const int N=3e6+5;
int n,tot;
int a[N],trie[N][2];void insert(int x){int cur=0;for(int i=31;i>=0;i--){int k=(x>>i)&1;if(!trie[cur][k])trie[cur][k]=++tot;cur=trie[cur][k];}
}
int search(int x){int ans=0,cur=0;for(int i=31;i>=0;i--){int k=(x>>i)&1;if(trie[cur][k^1])ans+=(k^1)<<i,cur=trie[cur][k^1];elseans+=k<<i,cur=trie[cur][k];}return ans;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n;for(int i=1;i<=n;i++)cin>>a[i],insert(a[i]);int ans=-1e18;for(int i=1;i<=n;i++){int now=search(a[i])^a[i];ans=max(ans,now);}cout<<ans;return 0;
}

C

见题解。

D

考虑到异或是不进位的加法,说明 \(x \in [0,2 \times 10^6]\)

我们枚举 \(x\),这样 \(x,k\) 都能定下来,于是只要确定有多少个 \(a_i\)

\(a_i\) 全部扔进 01-trie 里头,画一下图分析,可分两种情况:若 \(k\) 当前位为 \(1\),则 \(x\) 的当前位的那个分支上的 \(a_i\) 全都可以选,我们仅需找另外一侧的;若为 \(0\),则必须走 \(x\) 的当前位的那个分支。

注意,最后需要加上恰好 \(= k\) 的情形。

实现
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <cmath>
#include <stack>
#include <map>
#include <set>
#define int long long
using namespace std;const int N=3e7+5;
int n,k,tot;
int a[N],trie[N][2],cnt[N];void insert(int x){int cur=0;for(int i=31;i>=0;i--){int xi=(x>>i)&1;if(!trie[cur][xi])trie[cur][xi]=++tot;cur=trie[cur][xi];cnt[cur]++;}
}
int search(int x){int cur=0,ans=0;for(int i=31;i>=0;i--){int xi=(x>>i)&1,ki=(k>>i)&1;if(ki)ans+=cnt[trie[cur][xi]],cur=trie[cur][xi^1];elsecur=trie[cur][xi];if(!cur)return ans;}if(cur)ans++;return ans;
}signed main(){ios::sync_with_stdio(0);cin.tie(0);cin>>n>>k;for(int i=1;i<=n;i++)cin>>a[i],insert(a[i]);int ans=-1e18;for(int x=0;x<=(int)(2e6);x++)ans=max(ans,search(x));cout<<ans;return 0;
}

总结:

  • 01-trie 画图与分析技巧:从高到低位依次对齐 01-trie 的每一层,分析如何在树上走(通常需要分类讨论)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1450E Capitalism

首先你发现这个条件特别能用差分约束描述,特别是构造方案。 但是你无法处理相同的情况,我们注意到相连的边的两个点的 \(a\) 奇偶性必定不同,于是这必定是一张二分图,检验一下是不是二分图即可。 然后跑普通的差分…

织梦如何做几种语言的网站移动互联网开发平台基于linux安卓

“同物异谱&#xff0c;同谱异物”会对影像分类产生的影响&#xff0c;加上高分辨率影像的光谱信息不是很丰富&#xff0c;还有经常伴有光谱相互影响的现象&#xff0c;这对基于像素的分类方法提出了一种挑战&#xff0c;面向对象的影像分类技术可以一定程度减少上述影响。 本…

手游网站怎么做可做百度百科参考资料的网站

编辑距离算法其实就是&#xff0c;在规定的编辑操作(替换字符串、插入字符串、删除字符串)中&#xff0c;经过几步可以把一个字符串变成另一个字符串&#xff0c;而这个所需的步数就是你的编辑距离。 测试样例&#xff1a; str1 abc str2 yabd 表里的每一个值都代表着将s…

网站建设一年600wordpress自动添加标签

声明常量&#xff1a;使用const关键字定义一个常量&#xff0c;不允许对其进行更改。例如&#xff1a; const int PI 3.1415926;修饰函数参数&#xff1a;加上const限定符可以确保函数不会修改传入的参数值。例如&#xff1a; void print(const int num) {// num不能在函数内…

Java 在Word 文档中添加批注:高效文档协作的利器 - 指南

Java 在Word 文档中添加批注:高效文档协作的利器 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

ui网站开发国内互联网公司排名2021

学习时间表 周次内容学习时长建议第一周 【第一章-1】JDK下载与配置电脑的环境变量&#xff0c;并在电脑上运行第一个java程序 2h【第一章-2】IDEA开发环境的安装与编写第一个程序 2h 第二周【第二章-1】Java编程基础——变量与常量1h【第二章-2】Java编程基础…

二分图最大匹配 匈牙利算法

模板:洛谷p3386 #include<bits/stdc++.h> using namespace std; const int N=5e4+10; int vis[N],match[N]; vector<int> edges[N]; int n,m,e; bool dfs(int u){for(int &v:edges[u]){if(vis[v])con…

用来查数据的网站怎么建设最新网页版传奇游戏

一、axios 简介 axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;可用于浏览器和 Node.js 环境&#xff0c;支持以下特性&#xff1a; 发送 HTTP 请求&#xff08;GET/POST/PUT/DELETE 等&#xff09; 拦截请求和响应 自动转换 JSON 数据 取消请求 并发请求处理 二…

2025 年脱硫剂厂家 TOP 企业品牌推荐排行榜,氧化铁,羟基氧化铁,常温氧化铁,沼气,天然气,煤气,煤层气,液化气,二氧化碳,氨气脱硫剂公司推荐

在当前工业快速发展的背景下,气体脱硫成为保障生产安全、减少环境污染的关键环节。无论是天然气、沼气行业,还是甲醇、化肥生产领域,都对脱硫剂的性能有着极高要求。优质的脱硫剂不仅需要具备高脱硫精度,还要有稳定…

网站内部优化是什么创建网站有免费的吗

3月29日&#xff0c;以“新零售、新流量、新风口”为主题的2024喜尔康浙江省经销商培训会在喜尔康总部正式开始举办。活动旨在智能新时代赋能经销商伙伴&#xff0c;通过抓住行业智能化风口&#xff0c;实现喜尔康与经销商的共赢&#xff0c;决胜未来新零售商机。 喜尔康始终致…

2025雨棚生产厂家 TOP 企业品牌推荐排行榜,西安,陕西,西北推拉雨棚,推拉,移动,活动,户外,电动伸缩雨棚推荐这十家公司!

引言在遮阳遮雨行业快速发展的当下,雨棚作为工业、商业、体育休闲等多个领域的重要设施,市场需求持续增长。然而,当前雨棚生产厂家数量众多,行业整体呈现出良莠不齐的态势。部分厂家缺乏核心技术,生产的雨棚在结构…

百度找不到我的网站了品牌网站建设渠道

在Spring Boot项目中预防CSRF攻击通常涉及利用Spring Security框架提供的内置支持。Spring Security已经为CSRF提供了默认的防护措施&#xff0c;但根据应用的特定需求&#xff0c;可能需要进行一些配置调整或扩展。下面是一系列步骤和建议&#xff0c;用于在Spring Boot项目中…

建设银行辽宁招聘网站新公司怎么建立自己的网站

+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) 一 音频4A算法是? 音频4A算法是指自动增益控制(Automatic Gain Control, AGC)、自动噪声抑制(Automatic Noise Suppression, ANS)和自动回声消除(Automatic Echo Cancellation, AEC),主动降噪ANC(Active Noi…

2025 年木工机械设备厂家 TOP 企业品牌推荐排行榜,深度剖析木工机械设备推荐这十家公司!

引言在木工行业蓬勃发展的当下,木工机械设备的质量与性能对生产效率和产品质量起着决定性作用。随着市场需求的日益多元化和精细化,木工企业对机械设备的要求也水涨船高,不仅期望设备具备高精度、高稳定性,还希望其…

python语言语音控制科学计算器程序代码3QZQ

import tkinter as tkfrom tkinter import scrolledtext, messagebox, filedialog, ttkimport pyaudioimport threadingfrom vosk import Model, KaldiRecognizerimport osimport jsonfrom pygame import mixerimport …

Python语言自动玩游戏的消消乐游戏程序代码3QZQ

import pygameimport sysimport randomimport timeimport mathfrom pygame.locals import * # 初始化pygamepygame.init() # 游戏常量SCREEN_WIDTH = 900SCREEN_HEIGHT = 700GRID_SIZE = 8CELL_SIZE = 60MARGIN = 50FP…

希爱力双效片副作用seo做的最好的十个网站

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>音频引入</title></head><body><!--audio:在网页中引入音频IE8以及之前版本不支持属性名和属性值一样&#xff0c;可以只写属性名src属性:指定音频文件…

python语言手势控制音乐播放器代码QZQ

# pip install opencv-python mediapipe pygame numpy pillow# pip install pyinstaller# pyinstaller --onefile --icon=1.ico main.py import cv2import mediapipe as mpimport pygameimport osimport numpy as npim…

地方门户网站建设方案秦皇岛市海港区建设局网站

文章目录 1、什么是DES2、DES的基本概念3、DES的加密流程4、DES算法步骤详解4.1 初始置换(Initial Permutation&#xff0c;IP置换)4.2 加密轮次4.3 F轮函数4.3.1 拓展R到48位4.3.2 子密钥K的生成4.3.3 当前轮次的子密钥与拓展的48位R进行异或运算4.3.4 S盒替换&#xff08;Sub…

做网站关键词加到什么位置企业网企业网站制作

夏天天气炎热&#xff0c;电脑机箱内温度也较高&#xff0c;温度过高会影响电脑性能出现死机等问题&#xff0c;甚至影响硬件寿命。所以给机箱装风扇来散热是非常重要的。那么&#xff0c;机箱风扇怎么装合理呢?机箱风扇的电源线怎么接呢?下面分享一下机箱风...夏天天气炎热&…