題目連線:
題意:乙個雪花有六個角,每個角對應乙個值,給出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 ...