UVA 11134 - Fabled Rooks(贪心 / 二分图 + 线段树优化连边)

Posted milky-w

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA 11134 - Fabled Rooks(贪心 / 二分图 + 线段树优化连边)相关的知识,希望对你有一定的参考价值。

题目地址:Fabled Rooks

题目大意:n * n 的棋盘上摆了 n <=10^5 个车,让他们两两不攻击,每个车必须摆在一个给定矩形里,给出一个解决方案?

1. 贪心

  由于行列互不影响, 所以可以分两遍求。第一遍确定每个车的行数,第二遍确定列数。

  以行为例,若从左到右扫描,则按照区间的右端点升序排序,因为如果扫到一个位置两枚棋子都可以放,则选择右端点较小的那个(右端点大的后面还有机会)。

 

2. 二分图匹配

  有个毒瘤老师把题目改成了这样:n * n 的棋盘上摆了 n <=10^5 个车,让他们两两不攻击,每个车必须摆在一个给定矩形里,求哪些车的摆放位置是确定的?

  贪心就无法解决了。

 

  行和列依然分开来做,每个棋子与它能在的每个行连边,再与能在的每个列连边。二分图中环上的点就是无法确定的。

  如果暴力连边, 复杂度肯定承受不了。毒瘤老师说需要 ST 表优化。怎么优化呢?

  上网搜也搜不到。线段树优化网上倒是有。那就用线段树优化吧 OvO。

  

  判断环的方法是,往右只保留匹配边,往左只保留未匹配边,它是不是在一个环中,缩强连通分量即可。

  

 

以上是关于UVA 11134 - Fabled Rooks(贪心 / 二分图 + 线段树优化连边)的主要内容,如果未能解决你的问题,请参考以下文章

Fabled Rooks UVA - 11134

UVA 11134 Fabled Rooks

UVa 11134 - Fabled Rooks

UVa 11134 Fabled Rooks 算法分析

UVA11134 传说中的车 Fabled Rooks

UVa11134 Fabled Rooks (问题分解+贪心)