[{"authors":null,"categories":null,"content":"测试一下。\nhttps://www.luogu.com.cn/problem/P15649\n这样的题 dp 无疑。考虑确定剖分的过程肯定要明确子树重链长度，才能随重儿子。所以重链长度必须计入状态。\n考虑记 $u$ 的子树重链长度为 $i$ 时，概率和答案。但是这样瓶颈在于求对于儿子 $v$，其重链长度为 $l$ 而儿子重链长度之和为 $\\sum l$ 的概率。需要确定每个儿子长度，然后概率相乘，最后乘上 $\\dfrac{l}{\\sum l}$ 才能得到对应情况答案。\n然后就不会了。\n实际上首先没必要记答案，可以直接拆贡献 $ans=\\sum_u P_u siz_u$，其中 $P_u$ 表示 $u$ 是轻儿子的概率。过程中会求重儿子概率，顺便累加答案即可。\n树上背包确实可以快速求出 $f(u,i)$ 表示所有儿子重链长度和为 $i$ 的概率，但是无法钦定一个儿子，从而无法转移。然而可以使用回退背包删除单个儿子贡献，快速求出不考虑 $v$ 的概率。\n$\\ce{H2O}$\n","date":1790812800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1790853465,"objectID":"be3d5cf9cd6acbc273a36563933ffdd6","permalink":"https://po7ed.github.io/post/my-first-post/","publishdate":"2026-10-01T00:00:00Z","relpermalink":"/post/my-first-post/","section":"post","summary":"测试一下。\n","tags":["test"],"title":"My First Post","type":"post"},{"authors":null,"categories":null,"content":"重新训一点 oi，不是很明确方向。犹豫了好几天，最后觉得「开始做」比「思考做什么」更重要，所以直接耍起。\nTHUPC P14840 [THUPC 2026 初赛] 宝石分组 首先，多次查询最优化答案，答案还取模，肯定是事先确定好策略然后计算。显然首先可以排序。先考虑最简单的情况，假设没有组大小限制，怎么分。发现对于两个和分别为 $a,b$ 的段，合并总劣于分裂 $$ 2\\left(\\frac{a+b}{2}\\right)^2\\le a^2+b^2 $$ 当然这里都非负，同时扩展到更高维同样成立，即应该尽量拉开差距，可用向量证。\n思考了一段时间，这样好像对分组没有很直观的指导意义：对于相邻的两个段也要拉开吗？怎么拉？于是换了一个角度。我们猜每段肯定是尽量远离平均数，即 $$ \\begin{aligned} \u0026amp;\\sum\\left(a_i-\\overline{a}\\right)^2\\\\ =\u0026amp;\\sum a_i^2-2\\overline{a}\\sum a_i+n\\overline{a}^2\\\\ =\u0026amp;s_2-\\frac{s_1^2}{s_0} \\end{aligned} $$ 即让每个段和尽可能极端。但这里写的时候才发现不太对，把平均数和总和混淆了。后面推导出段应该尽量长，全倒了。做成了权值为和的平方 /xk。应该是让每一段尽可能短。\n最后得到结论，从大到小排序后取 $\\lfloor n/l\\rfloor$ 段 $l$，一段 $(n\\bmod l)\\bmod (r-l)$（为 $0$ 则没有），最后 $\\lfloor(n\\bmod l)/(r-l)\\rfloor$ 段 $r$。其实这个也不够严谨。最后具体实现、判无解又出了一车问题，翻来复去地调。\n快做吐了，过的时候只有苦笑，这种还享受乐趣个蛋。但还是要练。\n这一道题做了大半天，想了 3h 写了 2h。以后可以考虑做题计时，首先限制思考时间，磨磨蹭蹭地想必须改掉。\n其次写尽量精准，不要怕想细节，不要自以为是。\nfor(int l,r;q--;) { cin\u0026gt;\u0026gt;l\u0026gt;\u0026gt;r; if(n%l\u0026amp;\u0026amp;l==r){puts(\u0026#34;-1\u0026#34;);continue;} // cannot adjust int R,x,L; if(l==r)L=n/l-1,x=0,R=0; else R=(n%l)/(r-l),x=(n%l)%(r-l),L=n/l-R-bool(x);} if(L\u0026lt;0){puts(\u0026#34;-1\u0026#34;);continue;} ll ans=(pre[l][L]+suf[r][R])%mod; ans=(ans+sq(s[n-R*r]-s[L*l])*inv[n-R*r-L*l])%mod; printf(\u0026#34;%lld\\n\u0026#34;,ans); } 就这样一段写不清楚，我的细节思考能力确有问题！可以把情况讨论清楚，让逻辑清晰。复杂逻辑就不要合并或者走小道了。比如这里分母为 $0$ 干脆判掉。而且无解情况处理也不够好，这种分开来又增加了逻辑复杂度，难想难调。\n类似寄法：CSP-J 2023 T3 一元二次方程（uqe）；CSP-S 2024 T2 超速检测（detect）；\n","date":1790812800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1790853465,"objectID":"4f21e6b31437aee08cd8aef8d84c2c4e","permalink":"https://po7ed.github.io/post/record-10/","publishdate":"2026-10-01T00:00:00Z","relpermalink":"/post/record-10/","section":"post","summary":"重新训一点 oi，不是很明确方向。犹豫了好几天，最后觉得「开始做」比「思考做什么」更重要，所以直接耍起。\n","tags":null,"title":"Record 10","type":"post"}]