专栏文章

qoj#11722 Hamilton

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minjumdl
此快照首次捕获于
2025/12/02 03:35
3 个月前
此快照最后确认于
2025/12/02 03:35
3 个月前
查看原文

题目大意

以如下方式给出一张带权无向图:点集为 {1,2,,n}\{1,2,\dots,n\},边有两种:
  1. 1i<n\forall 1\leq i<n(i,i+1)(i,i+1) 之间有边权为 00 的边;
  2. 1i<jn\forall 1\leq i<j\leq ngcd(i,j)=1,ji>1\gcd(i,j)=1,j-i>1(i,j)(i,j) 之间有边权为 11 的边。
现在给定起点 aa 和终点 bb (保证 aba\neq b),构造一条从 aa 开始,以 bb 结束的权值和最小的哈密顿路径(即经过每个点恰好一次),或报告无解。
2n2×1052\leq n\leq 2\times10^51a,bn1\leq a,b\leq n

解题过程

不妨设 a<ba<b,否则交换 a,ba,b 并将路径首尾翻转即可。
观察到边权为 11 的边实际上是很多的,所有可以猜想路径权值和较小。注意到路径权值和实际上就是有多少条 (i,i+1)(i,i+1) 的边没有经过,称这种边为"断边"。由于 a,ba,b 为路径端点,所以 (a,a+1)(a,a+1)(a1,a)(a-1,a) 中至少一条断边,(b,b+1)(b,b+1)(b1,b)(b-1,b) 中至少一条断边,即当 1<a<b<n1<a<b<nba>1b-a>1 时答案至少为 22,故可以分类讨论所有答案不超过 22 的情况。
(下文中 aba\to b 表示边权为 00 的边,要求 ab=1|a-b|=1aba\Rightarrow b 表示边权为 11 的边,要求 gcd(a,b)=1\gcd(a,b)=1aba\leadsto b 表示通过 00 的边从 aabb 的路径,即 a<ba<b 时为 aa+1ba\to a+1\to\dots\to ba>ba>b 时为 aa1ba\to a-1\to\dots\to ba=ba=b 时即表示单点 aa):
答案为 00 的情况:
  1. 只有 aba\leadsto b,此时要求 a=1,b=na=1,b=n
答案为 11 的情况:
  1. a1nba\leadsto 1\Rightarrow n\leadsto b,此时要求 a+1=ba+1=b
  2. a1a+1ba\leadsto 1\Rightarrow a+1\leadsto b,此时要求 b=nb=n
  3. ab1nba\leadsto b-1\Rightarrow n\leadsto b,此时要求 a=1a=1gcd(n,b1)=1\gcd(n,b-1)=1
答案为 22 的情况:
  1. a1b1a+1nba\leadsto 1\Rightarrow b-1\leadsto a+1\Rightarrow n\leadsto b,要求 gcd(a+1,n)=1\gcd(a+1,n)=1
  2. a1a+1b1nba\leadsto 1\Rightarrow a+1\leadsto b-1\Rightarrow n\leadsto b,要求 gcd(b1,n)=1\gcd(b-1,n)=1
  3. ab11a1nba\leadsto b-1\Rightarrow 1\leadsto a-1\Rightarrow n\leadsto b,要求 gcd(a1,n)=1\gcd(a-1,n)=1
  4. ab1a11nba\leadsto b-1\Rightarrow a-1\leadsto 1\Rightarrow n\leadsto b,要求 gcd(a1,b1)=1\gcd(a-1,b-1)=1
  5. a1b+1na+1ba\leadsto 1\Rightarrow b+1\leadsto n\Rightarrow a+1\leadsto b,要求 gcd(a+1,n)=1\gcd(a+1,n)=1(这实际上和 1 解决的是同一种情况);
  6. a1nb+1a+1ba\leadsto 1\Rightarrow n\leadsto b+1\Rightarrow a+1\leadsto b,要求 gcd(a+1,b+1)=1\gcd(a+1,b+1)=1
  7. 还有部分 a=1a=1 的剩余情况。
考虑剩余情况,即上面的互质条件都不满足,最简单的例子就是 nn 为偶数,a,ba,b 均为奇数。
简单举例尝试一下,可以发现这种情况似乎不存在构造。事实上,这就是本题的无解情况,证明如下:采用上面的“断边”来刻画哈密顿路径,那么每条断边的端点一定是一奇一偶,又因为 11 为奇数,nn 为偶数,所以设断点将 [1,n][1,n] 分成了 cc 段(这意味着如果存在路径,边权和为 c1c-1),那么所有段的左右端点加起来共有 cc 个奇数 cc 个偶数。又因为起点 aa 终点 bb 均为奇数,所以剩余的 c2c-2 个奇数 cc 个偶数分成 c1c-1 对(每对代表一条段之间的连边),必然有一对偶数,那么此时就不可能互质,这两个点之间不可能存在边。
上面的证明也提示了考虑奇偶性,所以对于剩余的情况考虑将 (1,2)(1,2) 设为断边,这样 22 和所有奇数之间都有权值为 11 的边:
对于 a=1a=1(这就是上面没讨论的权值和为 22 的情况):
  1. nn 为奇数:1b12nb1\Rightarrow b-1\leadsto 2\Rightarrow n\leadsto b
  2. bb 为偶数:1nb+12b1\Rightarrow n\leadsto b+1\Rightarrow 2\leadsto b
对于 a>1a>1(权值和为 33):
  1. nn 为奇数:a2nb+11a+1ba\leadsto2\Rightarrow n\leadsto b+1\Rightarrow 1\Rightarrow a+1\leadsto b
  2. bb 为偶数:a2b+1n1a+1ba\leadsto2\Rightarrow b+1\leadsto n\Rightarrow 1\Rightarrow a+1\leadsto b
  3. aa 为偶数:a2a+1b11nba\leadsto2\Rightarrow a+1\leadsto b-1\Rightarrow 1\Rightarrow n\leadsto b
除了分类讨论外,另一种可能的思路是暴力枚举断边(上面用到的断边只有五种可能)并枚举每段之间的顺序、每段内的方向并检验,可以避免讨论。

评论

0 条评论,欢迎与作者交流。

正在加载评论...