Acwing 1402 星空之夜

2021-10-18 19:21:23 字數 1311 閱讀 6796

這題思路很好看,但實現卻很難,用到了歐幾里得距離來代表乙個星群的形狀,對乙個星群,任意兩點(從這些可以組成星群的點中抽取兩個點(相當於集合))之間的距離之和

就好比有1、2、3、4、5五個點

找1-2 1-3 1-4 1-5 2-3 2-4 2-5 3-4 3-5 4-5的距離之和。

g代表乙個形狀對應的值

標記方法1. g=

d(ai-aj)(0

<=i

標記方法2. g=

d(ai-aj)(0

<=i<=j

老師講解**

/**(來回debug了很長,結果思路沒錯,n,m輸入是不是對應輸入(題目中給的是m,n)

**如下

#include

#include

#include

using

namespace std;

#define x first

#define y second

typedef pair<

int,

int> pii;

const

int n =

110;

const

double eps=

1e-6

;int n , m ,top;

double hash1[30]

;int id;

char g[n]

[n];

pii lc[n*n]

;void

dfs(

int a,

int b)

; g[a]

[b]=

'g';

for(

int i=a-

1;i<=a+

1;i++

)for

(int j=b-

1;j<=b+

1;j++

)return;}

double

get_dis

(pii a,pii b)

double

get_hash()

return sum;

}char

get_id

(double g)

intmain

(void

)for

(int i=

0;i) cout<

<

}

Acwing 1402 星空之夜(搜尋 雜湊)

題目大意 給定乙個長為 n nn 寬為 m mm 的 01 0101 矩陣,1 11 代表連通 連通形式為 8 88 連通 將每乙個聯通塊標上相同的字母,形態相似 通過對稱旋轉可轉換成同一種形式 的連通塊字母也要相同,輸出標記後的矩陣 題目分析 求連通塊可以使用 flo odfi ll flood ...

1402 星空之夜

原題鏈結 夜空深處,閃亮的星星以星群的形式出現在人們眼中,形態萬千。乙個星群是指一組非空的在水平,垂直或對角線方向相鄰的星星的集合。乙個星群不能是乙個更大星群的一部分。星群可能是相似的。如果兩個星群的形狀 包含星星的數目相同,那麼無論它們的朝向如何,都認為它們是相似的。通常星群可能有 8 種朝向,如...

資料結構之單鏈表,實現浪漫星空

開發工具 vs2019 圖形庫 easyx 2019 pragma once include include include define max star 100 最大星星數 define screen width 720 螢幕寬度 define screen hight 480 螢幕高度 def...