War:
从大到小枚举边权,visi记存在权值为i的点,visi记初始父亲,处理点权相同的情况
彼此之间有一些约束关系 : 最终答案ans一定是lcm的约数, 并且一定是gcd的倍数, 所以ans 可以初始化成gcd,
(1)如果一些质数在a / gcd 中出现, 那么就不能再出现在ans中,
(2) 如果一些质数出现在lcm / b中, 那么就一定要按照在lcm / b中出现的次数出现在ans中,
余下可以构成多种方案数的余地就是仅出现在b中, 但是又符合(1)的质数是否再出现和出现次数的选择, 对于符合这样条件的质数x, 可行最大指数为x_y, ans *= (x_y + 1)
Game:
对于每一个数都先质因数分解, 如果当前某质数已经累计到了2个, 就将最终答案乘该质数的平方, 并将计数清零
最长倍序列:
有一点类似最长上升子序列从前往后的处理方法, 只是每一个点最为答案向后传递时, 都只乘一个质因数, 因为显然同x 传递到 x * a 再到x * b 的答案长度优于x 直接传递到x * a * b, 卡一卡常就可以过(然而写着写着突然发现复杂度错了, 但是依然过了……)
sequence:
手算猜测答案= x 的所有约数和, 然后过了……
推导在此:https://www.mina.moe/archives/2050
Euclid:
不难发现答案其实就是个可取范围内最大的相邻的两个Fibonacci数, 不知道具体是在哪个范围内, 但是1e8项绝对超过了, 然后就是高精……, 还要压位, 压位就有点容易出错
(1)输入要调整
(2)输出除了第一位以外都要用0补位
Lucky:
2^15完全可以跑, 直接上容斥就好
浙公网安备 33010602011771号