首页 > 其他分享 >「GDKOI2023 提高组」异或图

「GDKOI2023 提高组」异或图

时间:2025-01-08 20:44:17浏览次数:1  
标签:连通 GDKOI2023 提高 容斥 异或 最小值 dp 数位

可以说是计数大杂烩了吧。

我们试着进行容斥:每次选定若干条边,钦定这些边两端的值相等。容斥系数显然是 \((-1)^{|E|}\)。然后对这些连通块我们把它们的最小值当作 \(a_i\) 拿来跑异或的问题。实际上我们就是要把原图划分成若干连通块,答案就是每个连通块的容斥系数之积乘上新异或问题的方案数,对于每种划分方案求和。一个连通块 \(S\) 的容斥系数即是 \(\sum\limits_{E}(-1)^{|E|}\),其中 \(E\) 是使得 \(S\) 连通的导出子图的子边集。

考虑怎么算容斥系数:继续容斥。我们考虑集合 \(S\) 被分割成了若干个互相的独立的子集,其中被钦定的某个节点(例如 \(\text{lowbit(S)}\))被分到了连通块 \(T\) 内,那么减去的贡献 \(T\) 的容斥系数乘以 \(S\backslash T\) 内部边集随便选的值。这一部分就能够 \(\mathcal O(3^n)\) 计算。

那么接下来要算出每个集合的异或问题方案数。我们考虑称某一个数位 \(d\),如果对于所有 \(i\) 都有 \(b_i(d)=a_i(d)\),那么这个数位是紧贴的。考虑枚举从高到低第一个不紧贴的数位(要判断更高位异或值是否满足要求),然后钦定这个数位上有至少一个限制值为 \(1\) 但是选了 \(0\)。然后我们考虑其他数位所对应的数,不管更低位怎么选,它都可以来调控使得最后异或为 \(C\)。所以方案数是易于计算的。故可以对于某一位,对每个数顺次 dp。这一部分总复杂度是 \(\mathcal O(2^n n\log V)\) 的。

然后再划分集合,并记录一下最小值集合就完了,这一部分状压 dp 时空复杂度 \(\mathcal O(4^n)\)。

但是显然过不去,考虑优化最后这个 dp。我们按 \(a\) 值从小到大排,那么每一次没有被选的最小数将作为新集合的最小值。发现我们主要的矛盾是同时记录哪些被选,哪些是最小值。我们优化一下状态,记录最小的没被选的数的位置,比他小的数,我们记录它们是否是最小值,比它大的数,记录它是否被选。这样这个 dp 的复杂度就被优化到 \(\mathcal O(3^n n)\) 了。至此,本题就通过了。

感觉最精妙的就是最后这一步优化状态定义了啊。

标签:连通,GDKOI2023,提高,容斥,异或,最小值,dp,数位
From: https://www.cnblogs.com/TulipeNoire/p/18659453/P10104

相关文章

  • 打卡信奥刷题(561)用C++信奥P7343[普及组/提高] 【DSOI 2021】电子跃迁
    【DSOI2021】电子跃迁题目背景“如果能证明大统一理论,这个世界将焕然一新。”“量子……量子……就差一点……”“嘶……哦。我想我明白了。”题目描述在你的视野下,出现了一排电子,他们分别拥有不同的能量。你需要做的是通过将相邻电子互换的方法,将电子排的有序。有......
  • ECCV2020 | DEM | 通过调整不同输入、多样性集成和区域拟合来提高对抗样本的可迁移性
    ImprovingtheTransferabilityofAdversarialExampleswithResized-Diverse-Inputs,Diversity-EnsembleandRegionFitting摘要-Abstract引言-Introduction相关工作-RelatedWork方法-Methodology梯度攻击方法-Gradient-BasedAttackMethods观察分析调整输入尺寸......
  • Product-Marketing-Online: 在线营销: 如何优化 Amazon的 广告投放 以提高 ROI(投资产
    如何优化亚马逊广告以提高ROI?2025-01-0610:07在竞争激烈的Amazon.com亚马逊市场,优化广告以提高ROI是商家的关键任务。以下是一些实用的策略:一、精准的关键词研究与选择深入了解产品特性和目标受众详细分析产品的功能、用途、优势和适用人群。例如:销售一款专业的摄影三......
  • 题解:P1541 [NOIP2010 提高组] 乌龟棋
    基础动态规划。这道题的题目条件显然满足阶段性和无后效性,那么有一个直观的思路就是把当前所处格子和四种卡片的使用次数作为状态。但是如果按照上面的想法,数组空间是无法开下的,所以我们稍微变一下思路,把四种卡片的使用数量作为状态,对于当前所处格子的话可以直接计算出来,这样数......
  • 让您的工作效率提高数倍的8种开发人员工具
    在现代社会,产品领域正以前所未有的速度演变,这得益于持续的创新和大量新技术的涌现。每天都有无数新工具发布,找到那些能带来巨大价值并值得升级到你的技术栈中的工具可能会让人感到不知所措。在这篇文章中,我整理了我最近发现的8个强大工具,它们将显著提升你的开发工作流程,并为你......
  • Java中线程池的作用是什么?它是如何提高效率的?及使用场景
    目录线程池的作用1.资源重用2.控制资源消耗3.提高响应速度4.提供更多高级功能使用场景1.Web服务器2.数据库连接池3.异步任务处理4.定时任务调度总结线程池是Java并发编程中一个非常重要的工具,它通过管理和复用一组预先创建的线程来执行任务,从而提高程序......
  • 算法网关视频分析网关小知识:视频分析系统如何提高对动态变化的识别能力?
    在当今快速发展的智能监控领域,视频分析系统对动态变化的识别能力显得尤为重要。无论是用于安全监控、交通管理还是商业客流分析,准确地捕捉和理解视频中的动态变化都是提升系统性能的关键。为了实现这一目标,我们可以从多个方面对视频分析系统进行优化和改进。以下是一些有效的方法......
  • 高效蓄电:新能源智慧移动充电服务如何提高汽车的充电效率?
    在新能源汽车产业蓬勃发展的今天,充电效率成为了制约其进一步普及的关键因素。传统的充电桩模式虽然在一定程度上满足了车主的充电需求,但在充电速度、便捷性等方面仍有待提升。而新能源汽车移动充电服务的出现,则为解决这一问题提供了新的思路。移动充电服务如何提高汽车的充电效......
  • 如何提高企业团队间的协作效率?四大关键策略
    在现代企业管理中,团队协作和任务管理是提升整体工作效率的关键。然而,随着团队规模的扩大和任务复杂性的增加,如何高效地分配任务、跟踪进度并确保协作流畅,成为了企业管理者头痛的问题。尤其在跨部门合作和远程团队的背景下,传统的沟通方式和任务管理手段显得尤为不适应。那么,如何通......
  • 如何调整网站的搜索关键词,以提高搜索引擎排名和用户体验?
    在优化网站关键词时,需要考虑以下几个方面:关键词研究:使用工具如GoogleKeywordPlanner、Ahrefs或SEMrush进行关键词研究。分析竞争对手的关键词策略,找出潜在的机会词。确保关键词与网站内容高度相关,并且符合用户搜索习惯。页面优化:在页面标题(TitleTag)、元描述(MetaD......