求解一道程序题

时间:2021-03-03 00:12:27
一个平面上有N条线段(0<N≤300).每条线段都由坐标系中的两个端点(Xi1,Yi1)和(Xi2,Yi2)定义,所有坐标都在0到32000之间.任何两条线段都没有超过一个的共有点(即交点).每条线段将涂上红\绿\蓝中的三种颜色中的一种.每条线段上的每个点都投影到OX坐标轴上(投影线平行于OY轴).每个投影点涂上离OX轴最近的线段上的点的颜色.你必须分别找出涂上红(SR)\绿(SG)\蓝(SB)的投影线的总长度.

输入说明:
  第一行为一个自然数N.接下来的N行中的每一行包含线段两个端点的坐标(4个整数,以空格为间隔)和一个字母(R, G, B),从而决定线段的颜色.    
输出说明:
  第一行必须包括字母R和数字SB,并用空格间隔.第二行必须包括字G和数字SG,并用空格间隔.第三行必须包括字母B和数字SB,并用空格间隔.所有的数字都应该被打印输出,并精确到0.01.

7 个解决方案

#1


看着题目都头疼,友情UP

#2


哪位大侠过来看哈嘛

#3


题目好难啊,我分析了下,不知道对不对,大家讨论下:
一共有N条线它们之间互不重合
输入要求是输入线段的两个点和,两个点的颜色,然后拿这个点的最小X坐标去和其它点的X坐标,如果有比这个点还要小的坐标存在那这个线的颜色就取那个线的颜色,如果没有就用输入的颜色。

#4


深了………………

#5


最好自己的代码 给我们改改

#6


convex hull.
具体算法已经忘光了

#7


友情帮顶。
估计要定义几个类才行了。

#1


看着题目都头疼,友情UP

#2


哪位大侠过来看哈嘛

#3


题目好难啊,我分析了下,不知道对不对,大家讨论下:
一共有N条线它们之间互不重合
输入要求是输入线段的两个点和,两个点的颜色,然后拿这个点的最小X坐标去和其它点的X坐标,如果有比这个点还要小的坐标存在那这个线的颜色就取那个线的颜色,如果没有就用输入的颜色。

#4


深了………………

#5


最好自己的代码 给我们改改

#6


convex hull.
具体算法已经忘光了

#7


友情帮顶。
估计要定义几个类才行了。