【动态规划】cf1034C. Region Separation
质因数分解套路的复杂度分析的动态规划
题目大意
有一颗$n$个节点有点权的树,初始整棵树为$1$号区域,要求满足下列规则:
- 除非$i$是最后一个等级,否则每一个$i$级区域都要被分成至少两个$i+1$级区域
- 对于每种等级,每个点必须恰好属于一个区域
- 一个区域的点集必须是连通的
- 对于相同等级,每个区域必须拥有相同的点权和
问有多少种合法的划分方案,$n \le 10^6,a_i \le 10^9$.
题目分析
首先考虑判断把树分为$k$个2级区域的合法性$f_k$,记点权和为$tot$。
一种朴素的想法就是对于每一个$k$,自底向上遍历整棵树,若剩余子树大小恰好为$tot\over k$,就割去这颗子树;如果整棵树能够被处理完,$k$就是合法的。每次判定复杂度为$O(n)$.
注意到这个想法里,每次割去子树的大小$s_i$恰好是$tot\over k$的倍数;并且不难发现,$k$合法的充要条件就是恰有$k$个$s_i≡0(\text{mod }\frac{tot}{k})$。简短解释一下:对于一颗$s_i≡0(\text{mod }\frac{tot}{k})$的子树,由于它的所有子树都奉行割去$s_j≡0(\text{mod }\frac{tot}{k})$的原则,那么剩下的包括点$i$的连通块就是$i$子树内最小的$\ge {tot\over k}$的连通块。因此,$\sum [s_k≡0(\text{mod }\frac{tot}{k})] \le k$;并且当且仅当$=k$时合法。
有了这个性质,考虑如何统计$f_k$。容易发现对于合法的$k$,$\frac{tot}{k}$的任意约数$k'$都是合法的。而对于子树$s_i$,其最小有贡献的$k=\frac{tot}{\text{gcd}(s_i,tot)}$。所以这里只需要对每个$s_i$存下最小的合法$k$,再以质因数分解题的套路处理一遍就能算出$[f_k=k]$了。因此处理$f_k$的复杂度是$O(n\ln n)$。
接下去考虑dp计算把整棵树分为若干个$i$级区域的方案数$g_i$。
转载于:https://www.cnblogs.com/antiquality/p/10692714.html
【动态规划】cf1034C. Region Separation相关推荐
- Codeforces Round #511 (Div. 1) 题解
在学校熬夜打$cf$找死啊. A - Enlarge GCD 先求个$gcd$,然后对于每个$a[i]$都除以$gcd$. 之后我们只需要统计每个质数整除的个数即可. 因为带上所有数的$gcd$一定是 ...
- 论文阅读:Automatic Detection and Classication of Teeth in CT Data
[论文信息] MICCAI 2012 会议论文 文章实现了中全自动的牙齿检测和分类,对象为CBCT/MSCT,实验数据集是43套临床头部CT图像. 主要是两个步骤: 1. 分割上颌骨: 2. 分成16 ...
- 强化学习-动态规划_强化学习-第5部分
强化学习-动态规划 有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU's Yo ...
- 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果...
科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果 [主讲]科罗拉多大学波尔得分校副教授Dan Zhang [题目]基于线性规划的近似动态规划方面的一些最新成 ...
- cell 发布 Phase separation 研究指南
转自: https://mp.weixin.qq.com/s/2YAtRPbGyY5APKvBOCz8NA 细胞是生物体结构和功能的基本单位,细胞内的各种组分如何在正确的时间以及空间上聚集以执行其相应 ...
- 算法洗脑系列(8篇)——第七篇 动态规划
今天跟大家分享下算法思想中比较难的一种"动态规划",动态规划给人像是作战时常用的"迂回战术",或者说是 游击战,在运动中寻找突破口. 一: 思想 首先要了解&q ...
- 伍六七带你学算法 动态规划 ——不同路径
力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...
- 由动态规划计算编辑距离引发的思考
简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...
- LeetCode 10. Regular Expression Matching python特性、动态规划、递归
前言 本文主要提供三种不同的解法,分别是利用python的特性.动态规划.递归方法解决这个问题 使用python正则属性 import reclass Solution2:# @return a bo ...
最新文章
- 马化腾公开信:AI将成为基础设施,腾讯要打造“数字生态共同体”
- 演示:动态路由协议RIPv1的配置
- SAP Commerce Cloud 项目 Spartacus 入门
- python format 冒号_python之格式化输出
- 8 9区别 endnote7_EndNote_9__简明教程_中文版
- python正交表结果生成
- win10中 有道词典不能联网/发音解决方法
- 中文姓名笔画计算(VBS脚本版)
- js为li列表添加点击事件
- spring cloud系列eureka
- 微信小程序---倒计时
- 手机开机启动慢是什么原因_手机开机慢,详细教您手机开机慢怎么办
- 《笨方法学python》习题43分析
- 初学者古琴入门知识——【唐畅古琴】
- 宝塔Linux面板的安装配置以及基本使用教程(超详细)
- 索尼电视linux系统版本,索尼X9500H智能液晶4K电视加入最新安卓9.0操作系统
- Acrobat Pro DC 教程:如何编辑 PDF 文件中的文本和图片?
- NVIDIA最全马甲对照表
- [Javascript]:BOM对象详解和BOM与DOM的层次关系
- 小猪的Python学习之旅 —— 18.Python微信转发小宇宙早报
热门文章
- mysql5.0 php_php怎么连接mysql5.0?
- spring 事务控制 设置手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- html转excel有问题,html转excel
- Qt 进程使用 使用当前进程启动另外进程
- 计算机网络:TCP和UDP的对比
- CSS实现垂直居中的5种方法
- java 日期calendar_java时间对象Date,Calendar和LocalDate/LocalDateTime
- php渲染视图,Laravel 视图渲染:Blade 模板引擎
- java replaceall 大小写_Java replaceAll不区分大小写
- python有哪些常用的库