2020CCPC秦皇岛重现(补题)

CCPC2020秦皇岛
总结:
emmmm 20号参加了组队训练 一个队友打过了 就没一起打 另一个开局就颓废了 害,自己坚持了五个小时 啃出来四题 E题WA了18发 实在没办法了 再找了一个题 花了一小时AC
开局一小时做出来三个题
A题 数学
很水
给你a个红气球 b个蓝气球 问你从中取出来两个球是红气球的概率
组合数学自己算算吧
F题 联通块 并查集 策略
n个人 m种朋友关系(u,v) 现在我们要选一些学生去干点事情, 当然也可以一个都不选
对于出席的学生,如果他的朋友没有来,那么每没有多少个朋友没来 ,贡献就会减一,如果一对朋友都参加了 那么贡献就会加1
然后如果k个人出席了会议 总贡献还要再减去k 问我们最多能获得多少贡献
来分析一下这个参加和不参加的贡献,先把朋友关系用并查集处理出来,我们会得到若干个联通块,如果是树,显然贡献为负 不可取,其他的图啊环的当然贡献至少为0 直接取完 easy

G题 数学
在这里插入图片描述
首先如果题目定义的那个运算表达式的值是 vel 那么显然 velk +1 到 (vel+1)k -1 开方都是那个值 显然 velk 也是 单独考虑吧
先求一下 n的1/k 次方的值 也就是最大的vel 是多少 然后处理一下 多余出来的贡献, 最终再计算一下每段vel 的区间长度 除去vel (因为题目要求整除) 做个累加 就是答案

K题 dfs序
一开始 一棵树, 人都在根节点处,每秒可以派一个人从一个节点移动到相邻的节点,问最少多少时间可以使得整个树都被访问了

    • 当时的想法就是先看样例 然后观察树链 祖先这些因素
  • 发现比如一个节点,有若干儿子 那么就是若干子链,如果走完最长链返回回来再去走较为短的 显然这是在泰河里
  • 先预处理一次 给每个节点标记上vel 为深度 并且按照深度从小到对儿子们排序
  • 然后处理每层的贡献 取deep 和下一次搜索的最小值 返回
  • E题 滑动窗口 尺取
  • 二分WA了18发 最后发现没单调性 qwq
  • 我们只需要维护[x*p%, x] 就OK

I题 大概是银牌/金牌题
粗暴的来讲

相当于给了我们 若干个向量 我们可以赋值上去一个系数 p
现在问 对于所有给出来的向量 能不能找到系数p
使得p1向量1+p2向量2 +++++ 等于目标向量
不懂 ,大佬甚至连数组都没开

猜你喜欢

转载自blog.csdn.net/weixin_45948940/article/details/109210672