首先,三角形的面积可以用叉积表示。若(0,0),(x1,y1),(x2,y2)的一个三角形,则x1*y2-x2*y1是不是偶数决定了它的面积是不是整数。
每个三角形都用它的最左边的顶点来表示;这样便于统计。部分三角形可能被统计两次,最后再说。枚举最左边的顶点,其他两个顶点必须在它的右边(或者x坐标相同)。不难发现,此时由于叉积式之和x1,y1,x2,y2的奇偶性有关,所以只要两个点x和y的奇偶性分别相等,他们就是等价的。所以剩下的待选点分为4类,这个很容易统计,答案也不难计算。
最后枚举一条平行于y轴的边,和一个点位于该线右边。这样的三角形被算了两次,必须减掉。但是因为一条边平行于坐标轴所以其实很好搞。。随便搞搞就出来了。
每个三角形都用它的最左边的顶点来表示;这样便于统计。部分三角形可能被统计两次,最后再说。枚举最左边的顶点,其他两个顶点必须在它的右边(或者x坐标相同)。不难发现,此时由于叉积式之和x1,y1,x2,y2的奇偶性有关,所以只要两个点x和y的奇偶性分别相等,他们就是等价的。所以剩下的待选点分为4类,这个很容易统计,答案也不难计算。
最后枚举一条平行于y轴的边,和一个点位于该线右边。这样的三角形被算了两次,必须减掉。但是因为一条边平行于坐标轴所以其实很好搞。。随便搞搞就出来了。