1. 题目

传送门= ̄ω ̄=

2. 题解

写完才发现原来正方形的边不一定平行于x或y轴。。。
首先无图言diao:

如图,设正方形左上角的点的坐标是(x1,y1),右上角的点是(x2,y2)
那么y=x2-x1,x=y2-y1,那么很显然,左下角的点的坐标是(x1+x,y1-y),右下角的点的坐标是(x2+1,y2-y)。
所以我们枚举所有的斜率>=0且不平行于y轴的线段(即枚举任意两个满足x1<x2且y1<y2的点),也就是图中的(x1,y1)和(x2,y2),再查哈希表,如果(x1+x,y1-y)还有(x2+1,y2-y)这两个坐标都有点存在的话,就有一个存在的正方形。
这样因为我们只枚举每个正方形的左上的边,所以答案不会有重复。

代码: