2024“钉耙编程”中国大学生算法设计超级联赛(2)

比赛链接

Code Repo

我的代码都扔 Code Repo 里面了

Problems AC
1001. 鸡爪
1002. 梦中的地牢战斗 待补
1003. 绝对不模拟的简单魔方
1004. a*b problem
1005. 小塔的养成游戏之梦
1006. 传奇勇士小凯
1007. URL划分
1008. 成长,生命,幸福
1009. 强攻计策
1010. 女神的睿智
1011. 在 A 里面找有 C 的 B
1012. 图计算

1001 鸡爪

队友写了

1003 魔方

小T最近有些疲惫,想找一些能够放松自己的事情去做,正好想起上次被队友用三阶魔方暴杀的经历,就想苦练一下魔方技术,好在下次的对战中击败他的队友。

于是他在网上下单了一个魔方,让小C帮他去取快递。

可是小C有些调皮,私自拆开了快递,随意的扭了这个魔方不超过三次(扭的是侧面,不是中间层,且扭的角度固定为90度),还弄掉了同一个角上的两片贴纸

小C的记性不太好,不太记得两片贴纸正确的位置了,所以随意的将两片贴纸贴了回去,并将这件事告诉了小T。

但小T作为一个还在学习如何还原底层十字的小萌新,面对被小C打乱过的魔方很是束手无策。

所以他向你寻求帮助,希望你告诉他小C有没有将两片贴纸正确的贴回去,如果没有的话,是哪一个角的贴纸贴错了呢。

逆天题,不超过三次的条件是为了骗你去爆搜,实际上直接看每个角的情况就行了。

1006 传奇勇士小凯 树形 DP

分数类 + 树形 DP。

丁真题,直接转移。

1007 URL 划分 模拟

逆天题,题面写不清楚。要定义了变量(带等号)的才输出。

1008 成长,生命,幸福 树的直径

德鲁伊题。

最后几十分钟会了,没写出来。

首先一个性质是,成长一次后每个点度数有三种情况:1/2/3

  • 对于度数为 2 的,下一次会分裂出 2 个 度数 2 的。
  • 对于度数为 3 的,下一次会分裂出 2 个 度数 2 的 和 1 个 度数 3 的。
  • 对于度数为 d 的,下一次会分裂出 2 个 度数 2 的 和 d - 2 个 度数 3 的。

那么对于一开始度数为 d 的点,(2, d - 2) -> ((d - 2) * 2 + 2 * 2, d - 2) -> ((d - 2) * 4 + (d - 2) * 2 + 2 * 2 * 2, d - 2)……

归纳一下就是 $2 ^ m + (d - 2) * (2 ^ m - 1) = (d - 1) * 2 ^ m - d + 2$

直接对这个权值求树的直径就是答案。但是,求直径的时候不是要两个点取 max 吗,直接算是会爆 long long 的,也不能取模。发现 2 ^ m 这一项是非常大的,也就说是你 2 ^ m 比 - d + 2 大出一个数量级的时候 比较 $(d_i - 1, -d_i + 2)$ 和 $(d_j - 1, -d_j + 2)$ 可以变为比较两个关键字的大小。

1010 女神的睿智 模拟

签到题

1011 在 A 里面找有 C 的 B

AC 自动机 + KMP

板子双拼的签到题。。。。。

1012 图计算

逆天原题 洛谷 P8026 [ONTAK2015] Bajtocja

给定 $d$ 张 $n$ 个点的图和 $m$ 次加边操作 (每次只在某个图上加边), 求每次操作后在 $d$ 张图上都连通的点对个数, $d \leq 200, n \leq 5 \times 10^3, m \leq 10^6$ 。

首先你知道一张图的情况是很简单的并查集对吧。如果两个点在并查集的上的父亲都相同的话,那么他们就是相互连通的。

你拓展到 $d$ 个并查集的情况,那么把一个点在 $d$ 个并查集上的祖先 hash 下来。如果一个 hash 值出现了 $k$ 次的话,就对答案有 $k^2$ 的贡献。

2024“钉耙编程”中国大学生算法设计超级联赛(2)

https://tosakaucw.github.io/2024“钉耙编程”中国大学生算法设计超级联赛(2)/

Author

TosakaUCW

Posted on

2024-07-22

Updated on

2024-08-08

Licensed under

Comments