摘要:
一个三角形由三个不共线的点组成,也就是说,三角形的个数等于三点不共线的组数。由于三点不共线的组数比较难算,可以通过计算它的补集三点共线的组数,再由总数C(n*m,3)减去。计算方法和Highway比较类似,若已知n行m列的答案,新增第n+1行,令n+1行的第一个点为a,那么a所在的三点共线满足什么条件?有多少组?几何上三点共线任意两点斜率相等,如果再加上各坐标值是整数这个限制条件,那么可得,最低点与最高点的横坐标之差与纵坐标之差非互质,即最大公约数K大于1。组数为K-1。我们可以枚举一个与a非同行同列的b,计算a与b连线上的三点共线组数。但是,跟上一题Highway一样,要考虑重复计算的问题。 阅读全文
摘要:
一开始以为要用欧拉函数解决,看了半天,发现怎么套都套不上去,只好换个角度思考,由于是递推专题,就用递推的思路尝试一下,如果n行m列的所有道路都已经建好。现在新添加一行,即第n+1行,会有哪些道路需要建设?先看第n+1行的第一个点a,再选择一个非同行同列的点b,若a与b之间没有道路,需要满足哪些条件?a与b之间没有道路就必须满足a与b之间的道路没有经过其它点,即a与b之间的横纵坐标之差互质。想到这就自以为解决问题了。后来发现互质只是条件之一,若有另外一点c与a的横坐标之差和纵坐标之差都是b的两倍,那么a与b的道路就已经存在。所以完整的条件是a与b互质且没有任何一点与a的横坐标之差和纵坐标之差都是 阅读全文