专栏文章
ioid1t3
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioigqsk
- 此快照首次捕获于
- 2025/12/02 19:44 3 个月前
- 此快照最后确认于
- 2025/12/02 19:44 3 个月前
先拼盘。
Sub 1,2
树。好办的,把欧拉序一字排开,往下复制直到成为方块。
Sub 3,4
所有点都和 1 有连边。用
1 填满网格,留出一些 的空格。每条和 1 无关的边就填进这个空格。显然整个图应该联通,这样不会出现有些点和 1 没连上。30 到手。
Sub 5
考虑扩展这个模式:
CPP1 1 1 1 1 1 1 1
* * 1 * * 1 * *
1 1 1 1 1 1 1 1
比如:
CPP1 1 1 1 1 1 1 1 1 1 1
2 3 1 3 4 1 2 4 1 5 5
1 1 1 1 1 1 1 1 1 1 1
就能解决
(1,2)(1,3)(1,4)(1,5)(2,3)(3,4)(2,4)。那再加一个
(3,6)(3,7)(6,7)(6,8)怎么办?在下面拼一个:
CPP3 3 3 3 3 3 3 3 3 3 3
6 7 3 3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3 3 3 3
6 6 6 6 6 6 6 6 6 6 6
8 8 8 8 8 8 8 8 8 8 8
棒。
显然一行如果过于长了可以截断往下拼,到底截多少可以算总共的组数,使长宽尽量均匀。
这样最多有 组,对于同一个颜色框,长 组宽 组的时候边长是 。所以尽量让这个分组的 接近 。那么 ,边长是 ,比例是 左右。对于 能过。
44pts。不过这个可能有点难写,细节咧。
Sub 6
重新想了下,好像还是那个欧拉序有前途。
抠出最长链,作为欧拉序的末选,这样可以让欧拉序最短,可以少从最长链跑回根。
dfs。每次跑到一个点(第一次经过)就把和他相邻的点全跑一遍。比如
CPP1 和 2,4,5,7 相邻,那就填:1 1 1 1 1 1 1 1
1 2 1 4 1 5 1 7
1 1 1 1 1 1 1 1
不是第一次经过就填一行的 1 完事。
这样绝对能塞进 里,因为主要开销在行,每个点第一次经过经过多花 行,欧拉序最多 ,所以是 行。
72 咯。
这种策略的列数是 ,有前途啊!
看题解。
我草怎么又是差一步脑电波啊啊啊啊。
你发现我们现在最多需要 行, 列。
那么一个正方形,什么东西有 条呢?啊哈!对角线!
结束了。你把欧拉序丢到对角线上然后在第一次经过的时候搞一个 3 条对角线的夹层。因为对角插入,不存在相邻的数会打架的问题,直接插入所有往 dfs 序更小的点连的边,这显然不会超过它当前的 dfs 序个,因此这个对角线是放得下的。
做完了。哎。
但是回想起来,确实是天才啊!
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...