【学习笔记】ARC156
C - Tree and LCS
服了,又不会构造题了。。。
首先猜结论:答案是
1
1
1。先要有这个魄力,不过能不能做出来就另当别论了。。。
最初的想法是构造一个小根堆和一个大根堆,后来想了一下感觉没法处理路径的情况。
然后看了一下题解,哦,把叶子节点两两配对就行了,看起来很对的样子。其实也就相当于 p p p序列是把这条路径翻转过来了。那么问题来了,为什么我当时就没想到呢?
数据范围你也诈骗人呢?
D - Xor Sum 5
考虑用生成函数来解决这个问题。
相当于求所有 S S S的异或和,其中 [ x S ] ( x A 1 + x A 2 + . . . + x A n ) K [x^S](x^{A_1}+x^{A_2}+...+x^{A_n})^K [xS](xA1+xA2+...+xAn)K的值为 1 1 1(在模 2 2 2意义下)
注意到 ( x A 1 + x A 2 + . . . + x A n ) 2 k = x A 1 2 k + x A 2 2 k + . . . + x A n 2 k (x^{A_1}+x^{A_2}+...+x^{A_n})^{2^k}=x^{A_12^k}+x^{A_22^k}+...+x^{A_n2^k} (xA1+xA2+...+xAn)2k=xA12k+xA22k+...+xAn2k
记 K = ∑ i = 1 M 2 k i K=\sum_{i=1}^M2^{k_i} K=∑i=1M2ki,那么原多项式可以写成:
[ x S ] ∏ i = 1 M ( x A 1 2 k i + x A 2 2 k i + . . . + x A n 2 k i ) [x^S]\prod_{i=1}^M(x^{A_12^{k_i}}+x^{A_22^{k_i}}+...+x^{A_n2^{k_i}}) [xS]∏i=1M(xA12ki+xA22ki+...+xAn2ki)
这样相当于算 ∑ i = 1 M A X i 2 k i \sum_{i=1}^MA_{X_i}2^{k_i} ∑i=1MAXi2ki的异或和, K K K的范围就大大缩小了。
最无脑的想法就是直接背包。然而应该注意到,其体积的形式为 A X i 2 k i A_{X_i}2^{k_i} AXi2ki,也就是说在 A i A_i Ai的二进制表示下在末尾添 k i k_i ki个零,显然后 k i k_i ki位的值不会发生变化,因此我们可以提前将后 k i k_i ki位的答案确定出来,稍加分析可知背包容量只需要 2 max ( A i ) 2\max(A_i) 2max(Ai),总复杂度 O ( n A i log K ) O(nA_i\log K) O(nAilogK)。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530029.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」