CF1047E Region Separation

银河麒麟V10 SP1忘记密码?3分钟搞定单用户模式密码重置(附详细截图) 本文详细介绍了银河麒麟V10 SP1操作系统忘记登录密码后的应急恢复方法。核心是通过GRUB引导菜单进入单用户模式,无需密码即可获得root权限,从而快速重置用户密码。文章提供了从捕捉GRUB界面、编辑启动参数到执行密码修改命令的完整步骤图解与常见问题解决方案,帮助用户在几分钟内恢复系统访问。 阅读详情

原题链接:http://codeforces.com/contest/1047/problem/E

Region Separation

There are n n n cities in the Kingdom of Autumn, numbered from 1 1 1 to n n n. People can travel between any two cities using n − 1 n−1 n−1 two-directional roads.

This year, the government decides to separate the kingdom. There will be regions of different levels. The whole kingdom will be the region of level 1 1 1. Each region of i i i-th level should be separated into several (at least two) regions of i + 1 i+1 i+1-th level, unless i i i-th level is the last level. Each city should belong to exactly one region of each level and for any two cities in the same region, it should be possible to travel between them passing the cities in the same region only.

According to research, for each city i i i, there is a value a i a_i ai​, which describes the importance of this city. All regions of the same level should have an equal sum of city importances.

Your task is to find how many plans there are to determine the separation of the regions that all the conditions are satisfied. Two plans are considered different if and only if their numbers of levels are different or there exist two cities in the same region of one level in one plan but in different regions of this level in the other plan. Since the answer may be very large, output it modulo 1 0 9 + 7 10^9+7 109+7.

Input

The first line contains one integer n ( 1 ≤ n ≤ 1 0 6 ) n (1≤n≤10^6) n(1≤n≤106) — the number of the cities.

The second line contains n n n integers, the i i i-th of which is a i ( 1 ≤ a i ≤ 1 0 9 ) a_i (1≤a_i≤10^9) ai​(1≤ai​≤109) — the value of each city.

The third line contains n − 1 n−1 n−1 integers, p 1 , p 2 , ⋯   , p n − 1 p_1,p_2,\cdots,p_{n−1} p1​,p2​,⋯,pn−1​ ; $ p_i (p_i≤i) $ escribes a road between cities p i p_i pi​ and i + 1 i+1 i+1.

Output

Print one integer — the number of different plans modulo 1 0 9 + 7 10^9+7 109+7.

Examples
input

4
1 1 1 1
1 2 3

output

4

input

4
1 1 1 1
1 2 2

output

2

input

4
1 2 1 2
1 1 3

output

3

Note

For the first example, there are 4 4 4 different plans:

Plan 1 1 1: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}.

Plan 2 2 2: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 , 2 } , { 3 , 4 } \{1,2\},\{3,4\} {1,2},{3,4}.

Plan 3 3 3: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 } , { 2 } , { 3 } , { 4 } \{1\},\{2\},\{3\},\{4\} {1},{2},{3},{4}.

Plan 4 4 4: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 , 2 } , { 3 , 4 } \{1,2\},\{3,4\} {1,2},{3,4}, Level- 3 3 3: { 1 } , { 2 } , { 3 } , { 4 } \{1\},\{2\},\{3\},\{4\} {1},{2},{3},{4}.

For the second example, there are 2 2 2 different plans:

Plan 1 1 1: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}.

Plan 2 2 2: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 } , { 2 } , { 3 } , { 4 } \{1\},\{2\},\{3\},\{4\} {1},{2},{3},{4}.

For the third example, there are 3 3 3 different plans:

Plan 1 1 1: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}.

Plan 2 2 2: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 , 2 } , { 3 , 4 } \{1,2\},\{3,4\} {1,2},{3,4}.

Plan 3 3 3: Level- 1 1 1: { 1 , 2 , 3 , 4 } \{1,2,3,4\} {1,2,3,4}, Level- 2 2 2: { 1 , 3 } , { 2 } , { 4 } \{1,3\},\{2\},\{4\} {1,3},{2},{4}.

题目大意

给定一棵大小为 n n n的树,点有点权,在一个方案中可以将整棵树划分多次,要求每次划分后各个联通块的权值和相等,问有多少种划分方案。

题解

考虑如何将一棵树划分为 k k k份,有一个简单的 d f s dfs dfs做法,设整棵树的权值和为 S S S,当一棵子树的权值和等于 S k \frac{S}{k} kS​时,就砍下来。

经观察可以发现,每次我们砍掉的子树的权值和都是 S k \frac{S}{k} kS​的倍数,当整棵树存在合法划分时,这样的子树恰好有 k k k个。

当一棵子树的权值和为 x x x时,它会对 k k k产生贡献当且仅当 S k ∣ x \frac{S}{k}|x kS​∣x,就有 S g c d ( S , x ) ∣ k \frac{S}{gcd(S,x)}|k gcd(S,x)S​∣k,由此我们便可以统计每棵子树的贡献,进而得知这棵树是否可以被划分为 k k k份。

如果这棵树可以划分为 k k k份,那么也一定可以划分为 k ′ ( k ′ ∣ k ) k'(k'|k) k′(k′∣k)份,所以 k ′ k' k′的方案数也可以加到 k k k上,我们再递推累加一下即可。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=1e6+5,mod=1e9+7;
long long val[M];
int dad[M],dp[M],cot[M],ans,n,i,j;
void in(){scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&val[i]);for(int i=2;i<=n;++i)scanf("%d",&dad[i]);}
void ac()
{
	for(i=n;i>1;--i)val[dad[i]]+=val[i];
	for(i=n;i;--i)if((val[i]=val[1]/__gcd(val[1],val[i]))<=n)++cot[val[i]];
	for(i=n;i;--i)for(j=i;(j+=i)<=n;)(cot[j]+=cot[i])%=mod;
	for(dp[1]=i=1;i<=n;++i)if(cot[i]==i)for((ans+=dp[j=i])%=mod;(j+=i)<=n;)(dp[j]+=dp[i])%=mod;
	printf("%d",ans);
}
int main(){in();ac();}
从零开始做对容量规划:一文讲透 SAP Greenfield sizing 与 Quick Sizer 落地方法 摘要 SAP项目早期硬件规划面临业务细节缺失的挑战,Greenfield sizing方法通过Quick Sizer工具将业务需求转化为硬件资源需求。该方法聚焦主要负载驱动因素而非精确预测,采用标准化问卷形式输入并发用户数、业务处理量等参数,输出内存、CPU等资源需求。关键步骤包括选择正确的Quick Sizer版本、创建sizing项目、参考SAP基准测试和认证目录校准结果,最终将需求交由硬件厂商落地。该方法特别适用于缺乏历史数据的新系统部署,帮助在不确定性中建立可控的容量规划模型,避免资源浪费或性能不足 阅读详情

相关推荐

EtherCAT FOE从站开发实战:SSC工具包实现固件在线升级与文件传输

EtherCAT从站开发中,固件在线升级与文件传输是常见需求。FOE(File Access over EtherCAT)作为邮箱通信协议,在实时总线上提供可靠的文件读写通道,与PDO、DC同步共存。其原理基于SM邮箱和状态机,通过SSC工具包可快速启用。技术价值在于无需拆机即可更新固件、导出日志,提升产线效率。应用场景包括伺服驱动器、IO模块等从站的固件升级与参数配置。本文深入讲解从站侧FOE读写实现、主站调用及工程化建议,助力嵌入式工程师高效开发。

weixin_29169899的博客 127

Codeforces Round #511 (Div. 2) E. Region Separation(思维,性质,dp)

LINK 题意 每一轮可以砍掉若干条边,满足每个连通块权值相等,求砍树方案数. 两种方案不同,当且仅当至少存在一轮,剩余的连通块不完全相同. 考虑如果把树分成kkk份,那么每个连通块的权值为Sk\frac{S}{k}kS​ 我们dfsdfsdfs这棵树,若存在一颗子树的权值等于Sk\frac{S}{k}kS​,显然需要砍掉这个儿子和父亲的边 这样重复做下去,发现需要砍掉所有满足Sk∣su\frac{S}{k}|s_ukS​∣su​的uuu与父亲的边 我们定义f[k]f[k]f[k]表示 f[k]=∑i=1

jziwjxjd的博客 456

ISCC-Amy‘s Code CTF-Reverse

ISCC-Amy's Code CTF-Reverse

m0_72904009的博客 682

cf1047C-Enlarge GCD-(欧拉筛+gcd+唯一分解定理)

https://vjudge.net/problem/CodeForces-1047C 说明:第一次记录的时候代码是超时的,本校校内赛出题人改编的,数据被缩小了,没有再cf上ac就贴了,很抱歉。另外,也不需要map这个东西,因为我做的校内赛的题a[i]被改成1e8,数组放不下所以需要map,而原题的数据是够范围的。修正时间:2019.7.27.14:26 题意:有n个数,他们有个最大...

dengpan1889的博客 307

运动控制软件:Siemens Sinamics二次开发_(6).通信接口与协议详解

PROFIBUSPROFINETModbus TCPCANopenEtherCAT每种通信接口都有其特定的应用场景和优势。选择合适的通信接口可以显著提高系统的性能和可靠性。在选择通信协议时,需要根据具体的应用场景和需求综合考虑。每种通信协议都有其特定的优势和局限性,因此在设计运动控制系统时,应选择最适合的协议,以确保系统的性能、可靠性、成本和维护性。通过以上对比和分析,希望开发者能够更好地理解和选择适合的通信接口和协议,从而优化运动控制系统的开发和应用。

2401_87715305的博客 901

【博文汇总】I2C总线学习

将这一周学习I2C总线的文章汇总一下。 基础知识学习 触发器的建立时间和保持时间 如何学习总线技术 TTL电平和CMOS电平 深入理解 关于I2C和SPI总线协议 I2C总线深入浅出 I2C总线信号时序总结 对I2C总线协议的一些理解 对I2C总线的时钟同步和总线仲裁的深入理解 I2C总线学习终结,开始SPI总线的学习 深入理解IIC总线时序

ce123的技术博客 6215

CF 1034C Region Separation - dp

神仙题啊 题目大意:给你一颗树,点有点权。每轮你可以切断一些边,但要保证剩下的联通快权值和都相等。问你有多少操作方案。1e6。 题解:考虑给你一个k问你能不能切成k段。 你会发现方案是唯一的:不断的从小到大考虑子树,每次遇到恰好k就切掉。 但这么做没有前途。我们发现,假设所有点权值之和是S,那么只有那些子树权值在模Sk\frac SkkS​意义下为0才有用。如果这样的子树有不少于k个那么就可行(因...

Mys_C_K的博客 819

番外篇 | 关于YOLO11算法的改进点总结

关于YOLO11算法的改进点总结。🌈

小哥谈 2311

【动态规划】cf1034C. Region Separation

质因数分解套路的复杂度分析的动态规划 题目大意 有一颗$n$个节点有点权的树,初始整棵树为$1$号区域,要求满足下列规则: 除非$i$是最后一个等级,否则每一个$i$级区域都要被分成至少两个$i+1$级区域 对于每种等级,每个点必须恰好属于一个区域 一个区域的点集必须是连通的 对于相同等级,每个区域必须拥有相同的点权和 问有多少种合法的划分方案,$n \le 1...

weixin_30868855的博客 258

华为od 面试八股文_JAVA语言_01_含答案

华为od 面试八股文_JAVA语言_01_含答案

MISAYAONE的博客 4314

Android12+RK3588 多应用录音适配

两个应用能够同时录音,在Android12上的实现

guanmingyuangmy的博客 2225

Codeforces Round #511 (Div. 1) C. Region Separation(dp + 数论)

转自:https://www.cnblogs.com/zjp-shadow/p/9773420.html 这个代码太6了 #include &lt;bits/stdc++.h&gt; #define For(i, l, r) for(register int i = (l), i##end = (int)(r); i &lt;= i##end; ++i) #define Fordown(i...

u011535421的博客 446

Codex 100个真实案例 - 用AI画业务流程图Mermaid(产品经理都馋哭了)

还在用 Visio、ProcessOn 拖拖拽拽画流程图?改一个箭头方向就要调半天?本案例教你用 Codex 自然语言描述业务流程,AI 自动转为 Mermaid 代码,一秒生成专业流程图、时序图、甘特图、饼图!还能搭建在线渲染工具、批量导出 PNG/SVG、集成到文档系统。产品经理、架构师、项目经理都能用,从此画图再也不是体力活!

yueyeguzhuo的专栏 351

CF1047C Enlarge GCD(欧拉筛+gcd+唯一分解定理)

题目链接:https://vjudge.net/contest/373416#problem/E 题意:给你n个数,目前的gcd值为g,问你最少去掉几个数可以使剩下的数的gcd值大于g。 思路:先把原数组中的数都除去g,然后再把除去这个数后的所有数进行因式分解,用一个num数组来记录一个因数在这个除去g的数组中共出现了几次,找到出现此次数最多的,然后用n减去它就行了。 代码如下: #include<stdio.h> #include<string.h> #include&l

xian_ing的博客 328

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CF 1047 C Enlarge GCD gcd

题意: 给出N(<=3e5)个数, 每个数不超过M(<=1.5e7), 问最少去掉多少个能让这个数组的gcd变大, 不可能的话输出-1. 思路: ①: 题意等价于, 这个数列全都除以一开始的gcd, 得到B集合, 求B的最大子集C, 使得C的gcd不为1. ②: 而①又等价于: C集合中, 存在一个"公共质因子"X, 即C中每个数%X=0且X为质数. ③: 由②, 我们只需要统...

swqeaaa的博客 311

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

CF450B Jzzhu and Sequences(矩阵加速)

CF450B Jzzhu and Sequences 大佬留言:这。这。不就是矩乘的模板吗,切掉它!! You are givenxxandyy, please calculate $f_{n}(mod(10^{9}+7))$. 原式:$f_{i}=f_{i-1}+f_{i+1}$ 转换一下:$f_{i+1}=f_{i}-f_{i-1}$ 相当于$f_{i}=f...

weixin_30359021的博客 163

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

CF1047C Enlarge GCD

原题链接:http://codeforces.com/contest/1047/problem/C Enlarge GCD Mr. F has nnn positive integers, a1,a2,⋯&amp;ThinSpace;,ana_1,a_2,\cdots,a_na1​,a2​,⋯,an​. He thinks the greatest common divisor of these...

ShadyPi的IT笔记 409

矩阵加速(数列)

P1962 斐波那契数列 题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请你求出 f(n) mod 1000000007 的值。 输入输出格式 输入格式: ·第 1 行:一个整数 n 输出格式: 第 1 行...

Insistor 527

矩阵经典题目七:Warcraft III 守望者的烦恼(矩阵加速递推)

https://www.vijos.org/p/1067 很容易推出递推式f[n] = f[n-1]+f[n-2]+......+f[n-k]。 构造矩阵的方法:构造一个k*k的矩阵,其中右上角的(k-1)*(k-1)的矩阵是单位矩阵,第k行的每个数分别对应f[n-1],f[n-2],,f[n-k]的系数。然后构造一个k*1的矩阵,它的第i行代表f[i],是经过直接递推得到的。设ans

3123

矩阵快速幂之矩阵加速中矩阵构造

矩阵快速幂的算法与普通快速幂的本质是一样的,还好理解,但其重要应用矩阵加速中的矩阵构造确是一大难点。 我的快速幂模板: //矩阵快速幂注意特判 #include<iostream> #include<stdio.h> #include<algorithm> #include<iomanip> #include<cmath> #inc...

pxlsdz的博客 1195

数论专题

先搞了一波字符串,是时候到数论了。 2019.4.11 CF1070A Find a Number 用(i,j)表示数字和为i,余数为j的最短路,那么就是(0,0)到(s,0)的最短路。由于边权为1,直接bfs即可。 代码就不写了。 CF1109E Sasha and a Very Easy Test 显然可以线段树,主要问题在于模数不为质数,可能不存在逆元。 那么可以把模数质因数分解...

dfn8726的博客 236

Luogu4438[HNOI/AHOI2018] 道路

洛谷链接:https://www.luogu.org/problemnew/show/P4438 道路 题目描述 W 国的交通呈一棵树的形状。W 国一共有n−1n−1n−1个城市和nnn个乡村,其中城市从111到n−1n−1n−1编号,乡村从111到nnn编号,且111号城市是首都。道路都是单向的,本题中我们只考虑从乡村通往首都的道路网络。对于每一个城市,恰有一条公路和一条铁路通...

ShadyPi的IT笔记 3508

ARC097F Monochrome Cat

原题链接:https://arc097.contest.atcoder.jp/tasks/arc097_d Monochrome Cat Problem Statement There is a tree with N vertices numbered 1 through N. The i-th edge connects Vertex xi and yi. Each vertex i...

ShadyPi的IT笔记 1939

[Atcoder Code Festival 2017 Qual A Problem F] Squeezing Slimes

原题链接:https://code-festival-2017-quala.contest.atcoder.jp/tasks/code_festival_2017_quala_f Squeezing Slimes Problem Statement There are A slimes lining up in a row. Initially, the sizes of the sli...

ShadyPi的IT笔记 1133

[NeetCode 150] Longest Consecutive Sequence

【代码】[NeetCode 150] Longest Consecutive Sequence。

ShadyPi的IT笔记 1037

[2018.11.05 T2] 买牛奶

暂无链接 买牛奶 题目描述 由于TomTomTom喝牛奶的速度实在太快,没多久牛奶就被喝光了,因为牛奶被喝光了,所以主人准备让TomTomTom去买牛奶。 现在主人有nnn个硬币,第iii个硬币的面值为cic_ici​,TomTomTom会得到总面值恰好为kkk的硬币去商店买牛奶。到了商店,TomTomTom被琳琅满目的零食吸引了,于是准备拿买牛奶的钱来买零食。 然而黑心商家不接受找零,也就是说...

ShadyPi的IT笔记 989
上一篇: CF1047D Little C Loves 3 II
下一篇: CF1051D Bicolorings
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值