杂技演员(acrobat)
- 感谢 Rabbit_Mua 将题目搬运到了 oj 上
- 这个构造题还是比较套路吧
- 考虑欧拉回路的判定条件
- 把右部点全部连起来,这样保证最终图是联通的
- 考虑操作一,等价于改变两个点度数奇偶性
- 有点类似与增广路,最终一定是两个度数为奇数的点在路径两段
- 所以我们只需要让度为奇数的点两两配对,即把这条路径上的边取反(手玩一下 qwq
- 考虑在
n
n
n 次操作内做这件事
- 考虑构造树,将树中度为奇数的点两两配对,且路径不相交
- 下面给出一种构造
- 如果树上不合法点有奇数个,输出无解
- 否则设
s
i
z
[
u
]
siz[u]
siz[u] 表示子树内不合法点的个数,
- 如果是偶数,就把它到父亲的边断掉
- 剩下的边恰好连接了
s
i
z
[
r
t
]
2
\frac{siz[rt]}{2}
2siz[rt] 个点对
- 具体实现可以考虑树
d
p
dp
dp
- 注意细节,重边只保留一条,对于取反的边
(
u
,
v
)
(u,v)
(u,v) 要看原始图中是
A
u
→
B
v
A_u\to B_v
Au→Bv 还是
A
v
→
B
u
A_v\to B_u
Av→Bu ,用
m
a
p
map
map 记录即可 。
飞天鼠(flying)
- JOI 的题诶
但这题还挺水的 - 首先把不合法的边删了,
u
→
v
u\to v
u→v 合法当且仅当
h
u
≥
w
h_u\ge w
hu≥w
-
X
=
0
X=0
X=0 时直接跑最短路,答案是
2
d
i
s
[
n
]
+
h
[
n
]
2dis[n]+h[n]
2dis[n]+h[n]
- 结合暴力可以得到
50
p
t
s
50pts
50pts
- 从终点开始跑最短路,从起点开始跑最长路
- 然后暴力就完了
- 注意最长路的限制
d
i
s
2
[
u
]
=
min
(
d
i
s
2
[
u
]
,
h
[
u
]
)
dis2[u]=\min(dis2[u],h[u])
dis2[u]=min(dis2[u],h[u])
posted @
2022-07-09 14:52
仰望星空的蚂蚁
阅读(
9)
评论()
收藏
举报
来源