nyoj 130 相同的雪花

2021-05-27 15:11:18 字數 582 閱讀 9935

題目連線:

題意:乙個雪花有六個角,每個角對應乙個值,給出n個雪花,問能不能是否存在兩片相同的雪花(給出的角可能是逆序的);

解題思路:由於有很多雪花,因此資料很大,如果單純的進行直接查詢的話肯定會te,因此可以用雜湊的方法,其中雜湊函式可以用每個雪花的各個角的和來定義;然後對映到相應的位置。一旦找到就不在進行雜湊。

#include#includeusing namespace std;

struct snow

;snow *s[100005];

bool fun(int b,int sum)

if(j==6)return true;

for(j=1;j<6;j++)

if(j==6)return true;

}} p=p->next;

} p=new snow;

for(int i=0;i<6;i++)

p->next=s[sum]->next;

s[sum]->next=p;

return false;

}int main()

int flat=1;

for(int i=0;i

NYOJ130 相同的雪花

題目分析 很明顯這道題的資料量很大,所以不可能進行兩兩的判斷,所以需要將可能相同的資料對映到乙個集合中,然後在可能相同的資料集合中進行兩兩比較。如果兩組資料六個數的和相同,那麼就有可能是相同的雪花。但是六個數的和可能比較大,怎麼把它們分開呢,那只能建立乙個hash表,然後通過mod乙個比較大的素數來...

NYOJ 130 相同的雪花 雜湊

思路 以每組的和為key對每片雪花進行雜湊,然後從和相等的雪花裡進行匹配。注意雪花的匹配順序可以順時針也可以逆時針 include include include include using namespace std const int maxn 100001 最大數量 const int mod...

100 相同的樹

鏈結 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 2 ...