ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ptz22w 部分题解

2022-07-27 00:00:30  阅读:147  来源: 互联网

标签:max run cdot 题解 凸函数 leq ptz22w 部分 dis


Day 1. Kyoto U Contest 2

F. Flatland Currency

考虑整个问题其实就是要背包,特殊性质是每个物品的权值 \(\leq 4\)。

先把相同权值的合并,然后每一类是一个凸函数,于是可以逐个卷积合并,复杂度是 \(\mathcal O(n\log n)\)。

题解做法是如果按照模 \(12\) 分类,则每一个都是凸函数,枚举每个模 \(12\) 之后的值之后可以凸函数卷积合并,这样是 \(\mathcal O(12\cdot 6\cdot 4\cdot 3\cdot n)\) 的。

H. High Powers

考察多项式 \(f(x)=(x-a)(x-b)(x-c)\),不难发现,这就是

\[f(x)=x^3-sx^2+tx-u \]

并且有 \(f(a)=f(b)=f(c)=0\),于是将整个问题降幂,降幂之后的子问题满足 \(0\leq n,m\leq 2\),这些问题的答案都是平凡的。

J. Juggler’s Trick

先考虑如果已知序列怎么做:我们对每个前缀求答案。

考虑一下转移,相当于对每个能被选完的区间 \([l,r]\) 做贡献 \(f_r\gets f_l+r-l\)。

考虑一下什么样的区间是能被选完的,首先一个必要条件是 \(r+b|len\),且 \(\frac{r-b}{r+b}len=S_r-S_b\)。注意到如果满足这个条件则我一定可以用中值定理找到其中一个长为 \(r+b\) 的合法区间,于是这也是充分条件。

然后考虑一下怎么确定颜色,我们依然对每个前缀求答案,但此时能转移当且仅当满足一个偏序关系,对这个跑个分治动态二维偏序即可。

L. Lion and Zebra

把 \(u\) 提为根,然后注意到有一类状态是重要的:当前点一路走到 \(v\) 且过程中每次 \(d\gets d-2\),换句话说,\(d\) 在当前点的子树中。记这个状态的答案为 \(f_v\),则有转移:

\[f_u=\max(\max_{v\in son(u)}\min(f_v,dis_v+d_u+1),dis_{fa/u}+d_u+2)\\ \]

其中 \(dis_u\) 为到子树最远的叶子的长度,\(d_u\) 表示走到这个点的时候的 \(d\)。

其中第一个和式相当于枚举一个儿子走下去然后考虑 B 是否在子树里,第二个相当于直接往父亲 run,这个柿子成立因为我最优方案中如果 B 不在子树一定会直接 run 子树,往回 run 同理。

现在来考察两个柿子的大小关系,注意到:

\[\max_{v\in son(u)}\min(f_v,dis_v+d_u+1)\leq \max_{v\in son(u)}dis_v+d_u+1=dis_u+d_u \]

这直接导出:

\[dis_u\leq dis_{fa/u}+2\to f_u=dis_{fa/u}+d_u+2 \]

换句话说,我如果走到一个不是长儿子的点且 B 就在其子树中,则我下一步会直接 run 到当前点的长儿子里去。

于是分类讨论一下发现当 \(d\geq 3\) 的时候我一定会走向长儿子,且 B 也会在最长的儿子里恶心我。而 \(d\leq 2\) 的时候的情况是简单的,于是模拟一下就做完了。

标签:max,run,cdot,题解,凸函数,leq,ptz22w,部分,dis
来源: https://www.cnblogs.com/whx1003/p/16523147.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有