這道題被分類到 hash 裡面了,我覺得hash的作用就是快速的查詢以來判重和計數
這道題要判斷的是是否存在點和正方形是否被計數過。
前者用 map 和 pair 來解決,後者嘛,我只列舉某邊作為上邊的情況,所以,不必擔心拉
列舉每條邊作為正方形上邊時候的情況即可。
#include #include #include #include #include #include #include using namespace std;
#define p pair#define fst first
#define sec second
mapmp;
p point[2000];
bool used[1003][1003];
int main()
{ int n;
// freopen("acm.in","r",stdin);
while(scanf("%d",&n)&&n!=0)
{mp.clear();
memset(used,0,sizeof(used));
for(int i=0;i
POJ 2002 統計正方形 HASH
題意 給定n個點,問有多少種方法可以組成正方形。思路 我們可以根據兩個點求出對應正方形 有2個乙個在兩點左邊,乙個在兩點右邊 另外兩個點的左邊。例如 已知 x1,y1 x2,y2 則x3 x1 y1 y2 y3 y1 x1 x2 x4 x2 y1 y2 y4 y2 x1 x2 或x3 x1 y1 y...
poj 2002 HASH判斷正方形
題意 給出一些直角座標系的點,求這些點可以組成多少個正方形。思路 hash 正方形一條邊的兩個點的和,然後求另外兩個點,如果可以找到構成這個正方形的點的話,個數加一 include include define m 1031 using namespace std struct point poin...
正方形等分計數總正方形數
如下圖正方形,邊長是1cm,每邊被四等分,求一共分出了多少個正方形。經過手工數 邊長為1 4的正方形 16 邊長為1 2的正方形 9 邊長為3 4的正方形 4 邊長為1的正方形 1 所以一共是 30個正方形。當上述的正方形,邊長被3等分的情況又如何 還是手動數 邊長為1 3的正方形 9 邊長為2 3...