HBC14527随机树题解

凌晚轩 算法基础篇 51 0
想要成为编程高手?那就来试试全网最全C++题库,让您在练习中快速成长。
平日里写hash的时候,总有某些选手由于脸黑而导致惨遭卡模数,然后一些恶意卡模数的出题人也因此身败名裂,为了防止被卡,我们用一种高级的随机方式来代替原来的线性随机生成,也就是所谓的随机树!

平日里写hash的时候,总有某些选手由于脸黑而导致惨遭卡模数,然后一些恶意卡模数的出题人也因此身败名裂。为了防止被卡,我们用一种高级的随机方式来代替原来的线性随机生成,也就是所谓的随机树! 现在有一棵编号为0~n-1的有根树,其中0是树的根。每个节点初始有一个值Ti。现在要求支持一下两种操作: 1.  给出两个正整数u和x,我们将Tu的值乘以x,我们将这种操作称为SEED操作。 2.  给出一个正整数i,询问Si以及它一共有多少个正约数。其中Si表示以i为根的子树所有点的权值的乘积,我们将这种操作称为RAND操作。 容易发现,这样得到的答案还是很随机的。(其实不是) 你需要回答每一次的询问,由于一个数的约数个数可能非常多,这个数也可以非常大,你只需要把答案对1e9+7取模就可以了。

HBC14527随机树题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
成为编程大师,不再是梦想!全网最全C++题库,助您开启编程新篇章。

标签: HBC14527随机树题解