【LGR-174-Div.2】洛谷 2 月月赛 II & FanOI Round 1 题解

[2A.似巨龙高歌]

容易发现,如果把 aia_iai 从小到大排序,那么 ai−ai+1≤0a_i-a_{i+1}\leq 0aiai+10,否则一定有一项 >0>0>0 ,因此我们从小到大排序,求相邻两项差的最大值即可。

[2B.陌路寻诗礼]

subtask 1\text{subtask 1}subtask 1

考虑假如我们知道那些边在最短路上,那贪心地让这些边的边权尽可能小,其余的边边权尽可能大即可,因此每条边只有两种取值 1/k1/k1/k ,我们 2m2^m2m 枚举每条边的选择然后验证即可。

复杂度 O(T2m(n+m))O(T2^m(n+m))O(T2m(n+m))

subtask 2\text{subtask 2}subtask 2

k=1k=1k=1 时,每条边取值唯一,可以用 bfsbfsbfs 求出 111 号点到每个点的最短路以及路径个数。

复杂度 O(n+m)O(n+m)O(n+m)

subtask 3\text{subtask 3}subtask 3

m−1m-1m1 时,因为 111 号点可以到达每个点,所以这是一棵以 111 为根的外向树。

那么到每个点的路径唯一,随便赋值都行。

subtask 4\text{subtask 4}subtask 4

k=109k=10^9k=109 时,最短路一定不会走这些边,我们相当于可以删一些边。

那么找出一棵以 111 为根的外向树,树上的边赋值为 111,剩下的赋值为 10910^9109 即可。

subtask 5\text{subtask 5}subtask 5

考虑一棵以 111 为根的最短路径树,树边赋值为 111,非树边赋值为 kkk ,那么到每个点的最短路就是树上的深度,记为 depxdep_xdepx

对于一条非树边 (ui,vi)(u_i,v_i)(ui,vi),我们要求 depvi<depui+kdep_{v_i}< dep_{u_i}+kdepvi<depui+k,否则这条边就在最短路上。

我们找出一棵 bfsbfsbfs 树,那么有性质:

  • 对于非树边 (ui,vi)(u_i,v_i)(ui,vi)depvi≤depui+1dep_{v_i}\leq dep_{u_i}+1depvidepui+1 ,否则不满足 bfsbfsbfs 的性质 。

因此,当 k>1k>1k>1 时,这棵 bfsbfsbfs 树自然就满足 depvi<depui+kdep_{v_i}<dep_{u_i}+kdepvi<depui+k ,符合要求。

否则,k=1k=1k=1,方案唯一,我们只需要验证就行了。

复杂度 O(n+m)O(n+m)O(n+m)

[2C/1A] 水影若深蓝

考虑把给出的 ui,viu_i,v_iui,vi 连边,形成一个图。

如果 nnn 个点都是连通的,那一定无解,因为树是一个二分图,黑白染色后 ui,viu_i,v_iui,vi 一定颜色相同,故不可能所有点颜色相同。

否则,至少有两个连通块,我们任选一个连通块,选择其内的任意一点 xxx,再从其他连通块任选一个点 yyy,然后构造一棵这样的树:

  • xxxyyy 连边

  • xxx 所在连通块的其他点与 yyy 连边

  • 剩下点和 xxx 连边

容易验证符合要求。

[2D/1B] 半彩三重奏

可以发现,对于给出的颜色 xi,yix_i,y_ixi,yi ,若树上不存在一条边 iii 满足 iii 两端点的颜色分别是 xi,yix_i,y_ixi,yi ,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值