1. 程式人生 > >題解 P1665 正方形計數

題解 P1665 正方形計數

本題就是暴力列舉,但是有一種已知對角線的兩個點,就可以判斷另外兩個點所在的公式,如下:

mid.x=(a[i].x+a[j].x)>>1;
mid.y=(a[i].y+a[j].y)>>1;
p1.x=mid.x-(mid.y-a[i].y);
p1.y=mid.y+(mid.x-a[i].x);
p2.x=mid.x+(mid.y-a[i].y);
p2.y=mid.y-(mid.x-a[i].x);

這裡是利用了全等三角形的知識,將邊進行翻轉得出的,比較新穎,可以記記。