码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-02-23 19:06:51      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:size   amp   棋盘   bsp   一个   ros   解决   连通   无法   

题目地址:Fabled Rooks

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

1. 贪心

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

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

 

2. 二分图匹配

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

  贪心就无法解决了。

 

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

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

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

  

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

  

 

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

标签:size   amp   棋盘   bsp   一个   ros   解决   连通   无法   

原文地址:https://www.cnblogs.com/milky-w/p/8462841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!