ICode9

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

集训补题合集

2021-07-17 23:03:03  阅读:124  来源: 互联网

标签:cf490 变短 最大值 删掉 .... 集训 补题 合集 最长


好多题都不会啊,这可咋整
先写着吧....大概会割掉....

cf490

求带点权树上的简单路径构成的点权序列的最长上升子序列的长度的最大值

一个比较容易想到的做法就是dp,设f[x,i]表示以x为根的子树中,以i为结尾的最长上升子序列的长度,g[x,i]就是下降。这里我们规定只能选取深度递降的顺序
那么每次合并子树就好了,这样直接做是n^2logn的。还可以用线段树记录这个结尾的状态,那么两个dp状态合并就是线段树合并了,这样就少一个n

牛客多校1C

给一棵树要求删掉一个节点,使得剩余每棵树中的cf490的答案最大值最小

这个做法就很强。首先可以找原树的最长路径所在的链c,那么要删的点一定在这条链上(否则最大值不变)
不妨假设删掉了一个点x,那么这条最长链被分成两部分c1和c2,此时再按照cf490的方法求一次最长链得到c',则分类讨论

  1. c和c'相交,这个时候删掉它们的交点会更优秀(不仅让原本的最长变短了,还让变短后的最长也变短了)
  2. c和c'相离,这个时候删掉c上的任意一点都一样

于是就可以发现如果我们不断这么做下去,最终将得到若干条链的交,且这个交在不同层次的最长链上,删掉交里的点一定是最优秀的
每次对当前的交二分(取中点),判断新的交在哪一侧,这样就只是再多了一个log

牛客多校1H

定义函数\(f_h(x)=x\text{ mod } h\),求最小的\(h\)使得\(f_h\)是给定有限正整数集的perfect hash

不是perfect当且仅当存在\(a\neq b\),却\(f(a)=f(b)\),即 \(a_i-a_j\equiv 0\pmod h\),其中\(i\neq j\)
也就是说如果我们能算出任意两对数的差值,就可以方便地枚举答案了
直接开两个桶bct[i]和bct[INF-i],做卷积就好了....

标签:cf490,变短,最大值,删掉,....,集训,补题,合集,最长
来源: https://www.cnblogs.com/jjppp/p/15025391.html

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

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

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

ICode9版权所有