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

hash判断两个集合是否完全相同

现有两个无序整数集合 \(a\), \(b\),判断二者是否相同。
可以使用 \(hash\):钦定一个质数 \(P\) 与模数 \(M\),对两个集合分别求:

\[(\sum_{i=1}^{n}P^{r_{i}})\space mod \space M \]

看结果是否相同即可。

题目:link

相当于是要求解 \(n\) 元一次方程,给了 \(n-1\) 个等式和所有解的集合,解方程。首先可以消元,将 \(n-1\) 个未知数都表示成关于同一个未知数 \(r\) 的形式,然后可以枚举 \(r\),看形成的未知数集合是否与给定的未知数集合相同即可。那么如何快速判断两个集合是否相同就成为了解决此题的关键。可以注意到消元后的未知数形式是有一定规律的:奇数位置 \(r\) 的系数一定是 \(1\), 偶数位置 \(r\) 的系数一定是 \(-1\)。那么我们可以按奇偶先将形成的未知数集合分成两部分,其中系数为 \(-1\) 的集合大致可表示为:

\[P^{c_{1} - r}, P^{c_{2} - r}...P^{c_{m}-r} \]

它们的和可以表示为:

\[\frac{\sum_{i=1}^{m}P^{c_{i}}}{P^{r}} \]

分子是可以直接预处理出来的,因此每次枚举 \(r\),可以 \(O(1)\) 求出奇数位置的和;对于所有系数为 \(1\) 的偶数位置也是同理。这样就可以 \(O(1)\) 判断形成的集合是否与原未知数集合相同。具体细节见代码。

code

http://www.hskmm.com/?act=detail&tid=35738

相关文章:

  • 2025滑触线实力厂家推荐,无锡宸澳电气多型号防爆安全定制!
  • 2025年GEO优化公司推荐:五大实力企业口碑榜,引领AI搜索营销新生态
  • 2025年10月全屋智能家居品牌推荐:盈趣领衔对比评测榜
  • 2025码垛机厂家推荐济南金瑞祥,全自动龙门桁架定制实力企业
  • 2025防腐工程厂家推荐:无锡华金喷涂技术领先,定制防腐解决方案
  • [LangChian] 05.结构化提示词
  • C#获取文件md5码
  • 2025年10月防腐木凉亭厂家对比评测榜:江西纳美领衔五强深度解析
  • 2025通风天窗实力厂家推荐,正鑫专业制造与定制服务保障
  • 2025年10月治鼻炎产品推荐:权威对比评测榜助您精准选购
  • git提PR时很多别人的commit,清理多余的commit
  • Visual Studio 使用小知识记录
  • 2025数控锯床厂家推荐无锡正川,专业立式锯床制造企业
  • DeepSeek-OCR:让 AI “一眼看懂” 的黑科技
  • 生成一张图,苹果logo是透明冰块,安卓小机器人撒尿到苹果logo,冲出一个豁口
  • 业务记录:登录
  • kafka2.8出现NotLeaderOrFollowerException
  • IEC 61850 ICD文件解析
  • 2025无锡新梅赛智能设备厂家推荐:全自动视觉定位点胶机专业制造商
  • 2025安全光栅厂家推荐安一光电,超薄无盲区设计守护工业安全
  • 2025石头纸设备厂家权威推荐:鼎浩包装科技环保吹塑机制造专家
  • Java面试题总结
  • 读书笔记:Oracle分区技术详解
  • 2025精密光电厂家推荐:柯依努UV固化设备专业定制,品质保障!
  • 徐老师2025新版Nodejs课程含项目实战
  • 详细介绍:isis整体知识梳理
  • Moe-ctf Misc部分题解
  • DBA必备脚本:Oracle获取正在运行SQL的字面SQL文本
  • 智联笔记项目——251021为分享功能添加有效期
  • 直方图