首页 > 其他分享 >NFLS 2024.9.13 T4

NFLS 2024.9.13 T4

时间:2024-09-13 16:54:22浏览次数:9  
标签:13 le log 2024.9 T4 NFLS fa prod

题意

给出一棵以 \(1\) 为根的树 \((n\le 10^4)\) 和 \(k(k\le 10^{14})\)。

要求给每个点一个 \(a_i\) 使得 \(a_i\mid a_{fa_i}\),且 \(\prod a_i\le k\)。

思路

这题有一个很妙的思路,但不是前面。

设最终的 \(\prod a_i = S\),可以对 \(S\) 的每个质因子单独考虑。

设 \(g(s)\) 为给每个点一个 \(a_i\) 使得 \(\sum a_i = s\) 且 \(a_i \le a_{fa_i}\) 的方案。可以简单 \(O(n\log^4 k)\),前缀和加剪枝做到极小(应该)常数 \(O(n\log^3 k)\)。

将 \(S\) 唯一分解 \(= \prod p_i^{q_i}\),有 \(f(S) = \prod g(q_i)\),而 \(g(1) = 1\) 故 \(f(S) = \prod\limits_{q_i > 1}g(q_i)\)。

令 \(T = \prod\limits_{q_i > 1}p_i^{q_i}\),有 \(a^2b^3\) 与 \(T\) 为双射(应该)(powerful number 筛),那么 \(T\) 的数量为 \(O(\sqrt k)\),可以直接 dfs 得到。

但是,我们发现这并不好算,因为 \(p_i\) 之间要求不重复,所以在求每个 \(T\) 对应多少 \(S\) 时非常麻烦。(会算重)

想到算重主要是 \(q_1 > all q_i(i > 1)\) 导致的,如果我们先令 \(a_1 = \operatorname{lcm} a_i(i > 1), T = \prod a_i\),那么最终的方案就是 \(\frac{S}{T}\),因为所有 \(q_1\) 都由某个代表元计数了。

标签:13,le,log,2024.9,T4,NFLS,fa,prod
From: https://www.cnblogs.com/SkyMaths/p/18412445

相关文章

  • 20240913_155935 mysql 触发器
    建表需求创建一个日志表记录teacher表的操作日志情况增删改的相关信息要保存起来方便定期查看明确字段表名:log_info列信息idactioninfotime创建表格CREATETABLElog_info( idINTPRIMARYKEYAUTO_INCREMENT, action_nameVARCHAR(11), infoVARCHAR(111), act_......
  • P11037 【MX-X3-T4】「RiOI-4」上课
    P11037【MX-X3-T4】「RiOI-4」上课本文主要解释不断\(+1\)的过程如何快速实现的具体流程。题意给定正整数\(n,q\)和\(n\)个区间\([l_i,r_i]\)。有\(q\)组询问,每次询问给定一个整数\(x\)。在每个区间内选择一个整数\(a_i\)(\(l_i\leqa_i\leqr_i\)),使得所选整数的总......
  • Thinkpad C13 Yoga Linux声卡驱动问题解决方案等
    ChromebookMorphius:ThinkpadC13Yoga与linux这本子做工真不错,全铝触摸屏,360翻折,还有usi笔槽。续航也很长,能连续用8个小时。安装linuxcoolstar.org,请。如果运行那个脚本有困难(网络问题),你可以尝试打开那个脚本看看biosrom是从哪里下载的。手动下载后用脚本里的flashrom那......
  • Day 1 2024年9月13号
      今日主要做了碳酸锂C1段,平掉了之前棕榈油的空单回顾一下:1.碳酸锂做了C1段,等待C2反弹结束,等待C3可借入的机会。 2.棕榈油的空单,抓了个小的。踏空了个大空的机会。棕榈油节后继续调整。小五波跌破分型,反弹61.8%,空的机会错过了,原因是告警设高了一点点,没有提示出来。。......
  • 2024-9-13
    枚举学习importjava.util.Random;//枚举练习,与类类似/**enum美剧名{*枚举体(常量列表)*}*/publicclassTestEnum1{ publicstaticvoidmain(String[]args){ System.out.println(Season.AUTUMN); //枚举的遍历 for(Weekk:Week.values()){//values......
  • C++并发编程的学习(9-13)
    文章来源:恋恋风辰的编程笔记https://gitbookcpp.llfc.club/sections/cpp/concurrent/concpp02.html容器存储:thread类没有拷贝构造函数,所以使用容器存储它时,不能使用push_back(),需要使用点击查看代码voiduse_vector(){std::vector<std::thread>threads;for(u......
  • 2024.9.12
    今天早八,上高代,感觉老师没讲啥。复习了下高斯消元,然后讲了集合论。感觉这集合论我现在没法也不用学,没必要那么深刻,反正用不到。早知道在宿舍睡大觉的。回宿舍学习haskell,成功完成计概作业。当然基本所有东西都是抄云浅的,但这我也没办法,不是哥们老师啥都没讲为啥你会啊。但......
  • gjoi 2024.9.12
    T1星天花雨首先考虑分解\(k=l\timesr\),然后考虑\(a/b\)的前缀和中差分为\(l/r\)的对数是多少累加进去就行了,这个是好求的。#include<bits/stdc++.h>#defineup(i,l,r)for(inti=l;i<=r;++i)#definedn(i,r,l)for(inti=r;i>=l;--i)#definepbpush_backusing......
  • 京东h5st4.7.4(9段) 价值1000元?纯算奶妈级教学
    网站:aHR0cHM6Ly93d3cuamQuY29tLw==接口:aHR0cHM6Ly9hcGkubS5qZC5jb20=0.闲聊京东的h5st看着吓人一打开f12就显示本页面由京东-主站前端团队开发维护           --JDC其实过程很明显,经过了6,7个平坦流才可以拿到结果主要细心一点,相信你一定也......
  • 代码随想录算法训练营,9月12日 | 513.找树左下角的值,112. 路径总和,106.从中序与后序遍
    513.找树左下角的值题目链接:513.找树左下角的值文档讲解︰代码随想录(programmercarl.com)视频讲解︰找树左下角的值日期:2024-09-12想法:1.迭代:用层序遍历,遍历每层时记录下第一个节点的值,到最后一层就是要求的值;2.递归:根据最大的深度来找目标值。Java代码如下://迭代classSolut......