摘要:
对于一种构造,考虑怎么表示。 可以把相邻不同颜色建图连边。 注意到答案不可能小于 \(n-1\),否则图不联通,显然不可能。 考虑什么情况下是 \(n-1\)。图是一棵树。 考虑怎么构造出一棵树。 因为一种颜色出现次数大于等于这个点的度数,可以考虑可以确定叶子。 把剩余度数最小的往最大的连边,如果出 阅读全文
posted @ 2024-08-03 11:03
adam01
阅读(28)
评论(0)
推荐(0)
摘要:
首先考虑 \(n\equiv 0\pmod 3\) 的情况。 非常简单, 然后考虑 \(n\equiv 1\pmod 3\) 的情况。 只要把多出来的第一列第一行填满就行了。还要比原来情况多一个连通块。 然后考虑 \(n\equiv 2\pmod 3\) 的情况。 手玩一下,再往左上角添一点东西就行 阅读全文
posted @ 2024-08-03 11:03
adam01
阅读(30)
评论(0)
推荐(0)
摘要:
考虑每次更新就跑一遍 bfs。 \(O(n^4)\),复杂度不对? 但是注意到 \(dis\) 的最大值也就是 \(n\),每次更新 \(dis\) 至少减一。 所以最大值最多被更新 \(n\) 次,一共更新 \(O(n^3)\) 次,复杂度是对的。 直接暴力。 #include<bits/stdc 阅读全文
posted @ 2024-08-03 11:02
adam01
阅读(28)
评论(0)
推荐(0)
摘要:
因为一条边只能在 \(V_i,V_i+1\) 之间,如果把 \(V_1,V_3,\cdots\) 看作一部分,\(V_2,V_4,\cdots\) 看作一部分,这就是个二分图。 考虑一个二分图怎么“展开”成最多的集合。 考虑答案上界。上界是点对最短路的最大值加一。 如果集合个数超过上界,那么一定存在 阅读全文
posted @ 2024-08-03 11:02
adam01
阅读(30)
评论(0)
推荐(0)
摘要:
这里树的直径 \(l\) 定义为两个有硬币的点的最长距离。 做一次操作后,树的直径一定会变短。 我们发现,如果在直径端点做操作,直径减一。 在非直径端点操作,直径减二。 于是变成了一个威佐夫博弈,但是要注意的是,在直径长度为 0,1,2 的时候,每次都只能让直径减一。 因为直径长度为 1,先手必败, 阅读全文
posted @ 2024-08-03 11:01
adam01
阅读(30)
评论(0)
推荐(0)

浙公网安备 33010602011771号