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