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

省队集训day6 C

时间:2015-07-08 18:31:45      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:

Description

给定平面上的 N 个点, 其中有一些是红的, 其他是蓝的.现在让你找两条平行的直线, 使得在保证
    不存在一个蓝色的点 被夹在两条平行线之间,不经过任何一个点, 不管是蓝色点还是红色点
的前提下, 被夹在平行线之间的红色点个数最多

 

Input

    第1行: 一个整数 N (1 <= N <= 1000)
    第2..N+1行: 每行是一个点的坐标以及它的颜色.
                坐标用2个 绝对值<10^9 的整数表示
                颜色用 ‘R‘ 或 ‘B‘ 表示

 

Output

    第1行: 仅一个整数, 被夹在平行线之间的红色点个数的最大值

 

Sample Input

4
0 0 R
0 1 B
1 1 R
1 0 B

Sample Output

2
 

先考虑一下如果这两条直线必须与x轴垂直怎么做,我们先可以将所有点按x为第一关键字,y为第二关键字排序,在这个排好序的序列中找到最长的一段红色就是答案了(用线段树维护)

然后我们把坐标系旋转,如果

省队集训day6 C

标签:

原文地址:http://www.cnblogs.com/chenyushuo/p/4630869.html

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