专栏文章
UVA1439 独占访问2 Exclusive Access 2 题解
UVA1439题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min61xbk
- 此快照首次捕获于
- 2025/12/01 21:09 3 个月前
- 此快照最后确认于
- 2025/12/01 21:09 3 个月前
首先理解题意,给出无向图,给每一条边定向成为有向无环图,使得最长路的长度最短,这里的最长路长度指最长路上点的个数。如果令 表示以 号点结尾的最长路的长度,那么最后答案应该为 。
首先观察性质,如果 ,那么证明 和 之间没有直接的边,因为根据最长路转移的不等式可知如果设从 到 有一条边,那么 ,不符合 ,所以不存在从 到 的边;反之同理。
那么当我们定向完成之后,可以求出对于任意点 的 ,那么我们根据 的值分层,值相同的分为一层,那么根据上述性质可知,每层点内部无边。为了让最长路最短,那么应该在上述条件下,使得层数最少。
形式化的讲:原问题为找到无向图 的一个定向 ,使得 的值最小,其中 表示 中最长路径的包含的点数,即本题中的长度;新问题为找到 的一个分层 ,即把点分为若干个集合,并且每个集合内部无边,使得 最少,其中 表示分层的个数。原问题与新问题可证明完全等价。
首先证明,如果 有一个定向 ,那么存在 的一个分层 ,使得 ,其中运算与上文描述相同。因为 , 表示为以 结尾的最长路所包含的点数,即本题中的长度。由上文证明可得 与 之间无边与 等价。那么假设已经确定了一个 的定向 ,可以求出对于任意一个点 的 ,把所有 的点 放到第 个集合中,其中 ,因为每一个集合中互相无边,那么即构成了一个分层 ,且分到的层数 ,即集合个数,刚好为 。
其次证明,如果 有一个分层 ,那么存在 的一个定向 ,使得 ,其中运算与上文描述相同。假设存在一个 的分层 ,每一层内部都是没有边的且每一层之间存在边,假设把每一层按照不同的 从小到大排序,那么假设两个点 和 分别位于不同的层且 比 更靠左,将所有的边向右连,那么最长路在每一层最多选一个点,因此 。
最后综合上述证明,假设 是最小的分层,那么根据上述结论可以推出,存在一个 的定向 ,使得 。另一方面, 不可能小于 ,因为如果 ,那么根据上述结论可以推出,存在分层 使得 ,那么 ,与 为最小的分层这个条件相悖,所以 。
那么问题变成了把点集分成若干个子集,每个子集内部无边,为独立集,显然可以状压动态规划。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...