问题:计算连接的多边形中的孔数。通过以下条件保证多边形的连通性:输入三角剖分中的每个三角形与另一个三角形至少共享一侧,并且只有一组这样连接的三角形。
输入是平面中L
的n
点的列表T
,以及包含来自的三元组的列表0...n-1
。对于T
元组中的每个项,(t_1,t_2,t_3)
代表L
三角剖分中三角形的三个顶点(来自列表)。请注意,这是“多边形三角剖分”意义上的三角剖分,因此,在T
该交叠中永远不会有两个三角形。另一个规定是您不必清理输入内容,L
并且T
不包含任何重复项。
示例1:如果L = {{0,0},{1,0},{0,1},{1,2}}
,T = {{0,1,2},{1,2,3}}
则指定的多边形的孔数为0。
示例2:如果L = {{0,0},{1,0},{2,0},{2,1},{2,2},{1,2},{0,2},{0,1},{.5,.5},{1.5,.5},{1.5,1.5},{.5,1.5}}
,T = {{5,6,11},{5,10,11},{4,5,10},{3,8,10},{2,3,9},{2,8,9},{1,2,8},{0,1,8},{0,8,11},{0,7,11},{6,7,11},{3,4,10}}
则面输入将导致输出为2。
任务是编写最短的程序(或函数),该程序以L
和T
作为输入并返回孔的数量。“优胜者”将被认为是字符数最少的条目(暂定结束日期为6月1日)。
输入格式样本(请注意0索引):
0,0
1,0
0,1
1,2
0,1,2
1,2,3
T=1,2,3/1,4,5
已连接但未边缘连接)
T=1,2,3/1,2,4/5,6,7/5,6,8
。每个三角形与另一个三角形共享一条边,但是三角剖分是断开的