Segment set |
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 222 Accepted Submission(s): 100 |
Problem Description
A segment and all segments which are connected with it compose a segment set. The size of a segment set is the number of segments in it. The problem is to find the size of some segment set.
![]() |
Input
In the first line there is an integer t - the number of test case. For each test case in first line there is an integer n (n<=1000) - the number of commands.
There are two different commands described in different format shown below: P x1 y1 x2 y2 - paint a segment whose coordinates of the two endpoints are (x1,y1),(x2,y2). Q k - query the size of the segment set which contains the k-th segment. k is between 1 and the number of segments in the moment. There is no segment in the plane at first, so the first command is always a P-command. |
Output
For each Q-command, output the answer. There is a blank line between test cases. |
Sample Input
1 10 P 1.00 1.00 4.00 2.00 P 1.00 -2.00 8.00 4.00 Q 1 P 2.00 3.00 3.00 1.00 Q 1 Q 3 P 1.00 4.00 8.00 2.00 Q 2 P 3.00 3.00 6.00 -2.00 Q 5 |
Sample Output
1 2 2 2 5 |
Author
题目大意:
P 是添加一个线段, Q 是问 有几条线段和第 i 条线段相交。
思路:
其实我觉得,这个题用暴力完全可以去解。这里有一个很好的判断两条线段是否相交的版,不然,两条直线是否相交写起来还真的好烦。
还有需要注意的是,合并两个集合的时候,记得将他们所包含的线段的条数合并进去。嗯,就这么多了。
AC代码:
|
HDU 1558 Segment set
最新推荐文章于 2020-06-07 09:00:00 发布