首页 > 其他分享 >[CTSC2018] 暴力写挂

[CTSC2018] 暴力写挂

时间:2024-12-21 16:34:54浏览次数:7  
标签:log 最大值 分治 CTSC2018 LCA 树上 复杂度 暴力

两棵树,考虑枚举第一棵树的 LCA。

由于贡献是对称的,用 dsu on tree 把答案变成 \(O(n\log n)\) 个询问。

每个询问形如:查询第一棵树上 dfn 在一个区间里的点 \(p\in [l,r]\) 和点 \(u\) 在第二棵树上的 LCA 的深度和 \(p\) 的权值和的最大值。

可以在第二颗树上 DFS 的过程中维护每个点到当前 DFS 点的答案,需要矩阵加矩阵求和的操作。使用 KDT 维护,复杂度是 \(O(n\sqrt{n}\log n)\) 的,加上一些剪枝只能在原数据跑 85 分

考虑拆贡献:两点 \((u,v)\) 的 LCA 的深度 \(d_{LCA}\) 相当于 \(\dfrac{d_u+d_v-dis_{u,v}}{2}\)。

于是可以在第二棵树上点分治,需要做单点修改,区间最值。使用线段树维护,常数不太大,复杂度是 \(O(n\log^3 n)\) 的,可以通过

事实上不需要把询问离线下来。

在对第一棵树 dsu on tree 的过程中,可以在第二颗树上的点分树上直接维护信息。

由于是求最大值,点分树上每个点需要维护最大值和最大值的来源儿子,以及来源儿子不同于最大值来源儿子的最大值。

dsu on tree 的时候可以先递归轻子树,清空后递归重子树并继承信息。

不需要使用数据结构,时间复杂度 \(O(n\log^2 n)\),可以通过;

另一类做法

对于两棵树的问题,有时候会采用点分治+虚树地解决方法。

本问题中,需要使用三度化边分治和虚树上换根 dp。

点分治是无法做的,因为度数较大,无法很好地处理不同子树间的情况。

没有写这种做法。

标签:log,最大值,分治,CTSC2018,LCA,树上,复杂度,暴力
From: https://www.cnblogs.com/FreshOrange/p/18620883

相关文章

  • ssh防暴力破解
    (一)安装并配置fail2ban1.1安装yum-yinstallepel-releaseyum-yinstallfail2ban1.2启动fail2bansystemctlstartfail2bansystemctlenablefail2ban1.3编辑封禁规则vim/etc/fail2ban/jail.conf#使用shift+G跳转到最后添加如下规则[ssh-iptables]enabled=true......
  • BurpSuite工具-暴力破解模块与验证码识别
    一、暴力破解-Intruder1.1.攻击目标(Target)1.2.有效负载位置(Positions)1.2.1.狙击手(Sniper)1.2.2.破城槌(Batteringram)1.2.3.音叉(Pitchfork)1.2.4.集束炸弹(Clusterbomb)1.3.有效载荷(Payloads)1.4.资源池(ResourcePool)1.5.选项(Options)二、验证码识别2......
  • burp(6)暴力破解与验证码识别绕过
    声明!学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站......
  • #渗透测试#SRC漏洞挖掘#红蓝攻防#黑客工具之Burp Suite介绍06-暴力破解与验证码识别
    免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。                             ......
  • [ABC287E] Karuta(字典树模板题 + 思维暴力两种做法)
    [ABC287E]Karuta题面翻译给定NNN个字符串Si......
  • 华为编程-两数之和(暴力搜索vs哈希表)
    两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。解答一(暴力搜索):类似于排序算......
  • 链表【两数相加】具体思路——【递归】【迭代】【暴力】(附完整代码)
    文章目录前言一、问题引入,如何理解【链表】两数相加?二、方法一(固定数组暴力)三、方法二(递归法)四、方法三(迭代法)前言本文将介绍【链表】两数相加对于这一问题将采用多种思路方法来解决【暴力】【递归法】【迭代法】一、问题引入,如何理解【链表】两数相加?题目链接......
  • 【DVWA】——Brute Force(暴力破解)
    目录......
  • 解决SpringBoot 接口恶意刷新和暴力请求!!
    在实际项目使用中,必须要考虑服务的安全性,当服务部署到互联网以后,就要考虑服务被恶意请求和暴力攻击的情况,下面的教程,通过intercept和redis针对url+ip在一定时间内访问的次数来将ip禁用,可以根据自己的需求进行相应的修改,来打打自己的目的;首先工程为springboot框架搭建,不再详细......
  • 题解:Codeforces Round 967 (Div. 2) [暴力/贪心]
    A.MakeAllEqualtimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputYouaregivenacyclicarray\(a_1,a_2,\ldots,a_n\).Youcanperformthefollowingoperationon\(a\)atmost\(n-......