ABC293Ex ABC298Ex ABC294Ex 题解

news/2025/3/17 22:37:13/文章来源:https://www.cnblogs.com/dccy/p/18777910

ABC293Ex & ABC298Ex & ABC294Ex 题解

ABC293Ex

题意:用若干条颜色路径覆盖树,使得任意路径的颜色数的最大值最小。

首先可以考虑二分答案 \(K\),变成判定性问题。

考虑树形 DP,设 \(f_{x,0/1/2}\) 表示 \(x\) 子树内的「任意路径的颜色数的最大值」已经小于等于 \(K\) 时,\(x\)\(0/1/2\) 个儿子的颜色与 \(x\) 相同,其值表示以 \(x\) 为端点的「任意路径的路径颜色数的最大值」的最小值。

那么枚举儿子递归,然后考虑这个儿子是否要和 \(x\) 的颜色相同。有转移:

  • \(f_{x,i}+f_{v,j}\le K\) 时,\(f'_{x,i}\gets \max(f_{x,i},f_{v,j}+1)\)
  • \(f_{x,i}+f_{v,j}-1\le K\) 时,\(f'_{x,i+1}\gets \max(f_{x,i},f_{v,j})\)

复杂度 \(O(n\log n)\),注意到根据树链剖分的结论,答案不大于 \(O(\log n)\),复杂度降为 \(O(n\log \log n)\)

ABC298Ex

很简单的树上 DP 练习题。

找出 \(L_i,R_i\) 的路径上的中点,中点左侧走向 \(L_i\),右侧走向 \(R_i\)

于是处理出子树大小、每个点到所有点的距离和、每个点到子树所有点的距离和、每个点到子树外所有点的距离和,知道中点后就能 \(O(1)\) 算答案。

通过一些简单的分讨就可以倍增找到路径中点。

复杂度 \(O(n\log n)\)

ABC294Ex

很奇怪的题。

考虑容斥,枚举边集 \(S(0\le|S|\le m)\),表示指定 \(S\) 中的边的两端点颜色相同,那么设只保留 \(S\) 中的边后原图有 \(c\) 个联通块,则 \(S\) 对答案的贡献为 \(K^c\times (-1)^{|S|}\)。复杂度 \(O(2^m\text{poly(n,m)})\)

考虑剪枝,我们 dfs 枚举边集,注意到如果当前局面下存在一条边,使得连上这条边后 \(c\) 不变,则继续枚举是无意义的,因为各项的贡献会抵消。

使用不路径压缩的启发式合并的并查集,方便回溯。

复杂度不清楚,但可以通过,开优化后最慢的点跑了五秒多。

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

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

相关文章

Transformer(自然语言处理)笔记

Transerformer架构(自然语言处理) 尝试学习和从零构建一个大语言模型就目前我的认知 Transformer架构主要分为编码器、解码器、词表、训练集、训练算法(T5) 编码器(Encoder) Encoder主要负责将输入转换为计算机能够理解的内容(也就是词表中的向量词元) 解码器(Decoder) 将词…

20241101 实验一《Python程序设计》实验报告”

20241101 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级:2411 姓名:苏萱 学号:20241101 实验教师:王志强 实验日期:2025.3.12 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序,并进行…

Android 12 启用USAP

USAP是安卓10起携带的一个用来加快应用冷启动速度的功能。正常的情况下,你只需要设置属性persist.device_config.runtime_native.usap_pool_enabled为true即可启用该功能。 但是可能是因为这个功能默认是不开的,实际上Android 12有BUG导致功能不生效,谷歌也没人发现。 实际使…

高铁站智能监控预警系统

高铁站智能监控预警系统实时检测高铁出站口人员逆行预警,提示管理者及时阻止,可降低火车站安全事故。在出站口梯部署科缔欧AI智能分析识别预警摄像机,获取出站及附近的画面,摄像机集成算法,分析旅客逆行等各类事件,将原始数据和算法产生的分析数据传输至后台。当有旅客从…

第1个必会服务-定时任务

1.定时任务注意事项(箴言) 1.1.增加注释 书写定时任务的时候,尽量添加上一个注释. 用于说明这条定时任务作用. 1.2.尽量使用脚本 定时任务未来避免一些故障,推荐使用脚本.调试脚本的方法: sh -x 或bash -x ,显示脚本执行过程. 有+开头的表示脚本背后执行的过程. 如果开头没有+,…

攻防世界 level2 WriteUp

WriteUp 题目信息 来源:攻防世界 名称:level2 分类:Pwn 描述:菜鸡请教大神如何获得flag,大神告诉他‘使用面向返回的编程(ROP)就可以了’题目链接: https://adworld.xctf.org.cn/challenges/list解题思路 首先使用DIE对文件进行查壳,发现这是一个无壳的32位ELF文件。所以…

4、常量

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,比如整数常量、浮点常量、字符常量,或字符串字面值,也有枚举常量。 常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 常量可以直接在代码中使用,也可以通过…

【视频讲解】R语言逐步回归模型对电影票房、放映场数、观影人数预测可视化

全文链接:https://tecdat.cn/?p=34335 原文出处:拓端数据部落公众号 分析师:Junjie Tan讲解|R语言回归模型分析电影票房影响因素本文通过利用回归模型帮助客户对电影的票房数据(以及放映场数,观影人数)进行了研究,确定了决定电影的票房的重要因素。并讲述、论证了预测电…

实现使用vue3完成后台管理系统的基础页面搭建

<template><div><!-- 头部开始 --><div style="height: 60px; background-color: #8686e0; display: flex; align-items: center"><div style="width: 200px; display: flex; align-items: center; padding-left: 15px"><…

pytthon的基本运用(8)——模块

一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句 (2)python对象定义和python语句 (3)模块让你能够有逻辑地组织你的python代码段。 (4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂 (5)模块能定义函数…

服务器跑实验

项目名称——基于机器学习与深度学习的贷款批准预测 项目来源:和鲸社区https://www.heywhale.com/mw/project/670f61d10ebb9f7a69c5144c 项目数据集:有两个【上传不了博客】大概长这个样:数据说明:实验环境:tensorflow、shap 实验结果:实验过程以及遇到的问题和解决方案:…