zoukankan      html  css  js  c++  java
  • [code]poj3349 Snowflake Snow Snowflakes

    哈希+挂链。可以用next数组挂链。
     1 const p=99987;
     2 type
     3   arr=array[1..6]of longint;
     4 var
     5   a,b:Array[0..200000]of arr;
     6   next:Array[0..200000]of longint;
     7   i,j,n,has,tot:longint;
     8 
     9 function hash(x:longint):longint;
    10   var i:longint;
    11   begin
    12   hash:=0;
    13   for i:=1 to 6 do
    14     hash:=(hash*7+a[x,i]*131) mod p;
    15   inc(hash);
    16   end;
    17 function equa(a,b:arr):boolean;
    18   var i:longint;
    19   begin
    20   for i:=1 to 6 do
    21     if a[i]<>b[i] then exit(false);
    22   exit(true);
    23   end ;
    24 procedure sort(var a:arr);
    25   var i,j,t:longint;
    26   begin
    27   for i:=1 to 5 do
    28     for j:=i to 6 do
    29       if a[j]>a[i] then
    30         begin t:=a[j];a[j]:=a[i];a[i]:=t;end;
    31   end;
    32 
    33 begin
    34   readln(n);
    35   tot:=p+1;
    36   for i:=1 to n do
    37     begin
    38     for j:=1 to 6 do
    39       read(a[i,j]);
    40     sort(a[i]);
    41     has:=hash(i);
    42     while (has<>0)and(not equa(b[has],b[200000])) do
    43       begin
    44       if equa(b[has],a[i]) then
    45         begin
    46         writeln('Twin snowflakes found.');
    47         halt;
    48         end;
    49       has:=next[has];
    50       end;
    51     next[has]:=tot+1; inc(tot);
    52     b[has]:=a[i];
    53     end;
    54   writeln('No two snowflakes are alike.');
    55   end.
    View Code



    ------------------------------------------------------------------------- 花有重开日,人无再少年
  • 相关阅读:
    How do I change a .txt file to a .c file?
    [CQOI2007]余数求和
    CSP-J总结&题解
    【CSP游记S】
    [LuoguP1462]通往奥格瑞玛的道路
    归并排序——逆序对
    [NOIP 2011]选择客栈
    [二分图初步]【模板】二分图匹配,匈牙利算法
    [NOIP 2018]旅行
    黑魔法师之门 (magician)-并查集
  • 原文地址:https://www.cnblogs.com/lbz007oi/p/3364201.html
Copyright © 2011-2022 走看看