[code]poj3349 Snowflake Snow Snowflakes】的更多相关文章

哈希+挂链.可以用next数组挂链. ; type arr=..]of longint; var a,b:Array[..]of arr; next:Array[..]of longint; i,j,n,has,tot:longint; function hash(x:longint):longint; var i:longint; begin hash:=; do hash:=(hash*+a[x,i]*) mod p; inc(hash); end; function equa(a,b:ar…
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 37615 Accepted: 9882 Description You may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true. Your…
链接:Snowflake Snow Snowflakes 判断所有的雪花里面有没有相同的 每次把雪花每个角的值进行相加和相乘 之后hash #include<iostream> #include<algorithm> #include<cstring> #include<stdio.h> using namespace std; typedef long long LL; ; ,p=; ],head[maxn],nex[maxn]; int he(int *…
Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 49991   Accepted: 13040 Description You may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true.…
Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 48624   Accepted: 12697 Description You may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true.…
吼哇! 关于开散列哈希: 哈希就是把xxx对应到一个数字的东西,可以理解成一个map<xxx, int>(是不是比喻反了) 我们要设计一个函数,这个函数要确保同一个东西能得到相同的函数值(废话) 然后在函数值域上开邻接表即可. 本人第一次写hash,还不是经典字符串hash而是雪花雪雪花(......) 那么接下来欣赏丑陋不堪的hash吧! (poj上C++过不了,RE,G++就过了,有剧毒) #include <cstdio> , P = ; ]; struct Snowflak…
首先声明代码并没有AC,内存超了 但我对此无能为力,有没有哪位大神好心教一下怎么写 哈希,然后比较花瓣数组,这些应该都没问题才对..唉.. 贴MLE代码 import java.util.*; public class POJ3349 { static int N = 1200007; public static class HashNode{ int[] num=null; HashNode next = null; } // hashlist[i]存储hash值为i的链表 static Ha…
题目链接:http://poj.org/problem?id=3349 题意:雪花有6个瓣,有n个雪花,输入每个雪花的瓣长,判断是否有一模一样的雪花(通过旋转或翻转最终一样,即瓣长对应相等).如果前面的雪花判断出有重复,则不需对后续的进行操作. 题解:直接将花瓣存在二维数组里面,然后每次新输入一个,再对之前的进行遍历判重.但是这种做法很低效,遍历花了很多时间.所以用哈希表,可直接访问是否存在重复,如果不重复,则用一维数组将雪花存起来(数组包含在结构体里),并将其"挂"在相应的哈希值(k…
考察hash表: 每一个雪花都有各自的6个arm值,如果两个雪花从相同或者不同位置开始顺时针数或者逆时针数可以匹配上,那么这两个雪花就是相等的. 我们采用hash的方法,这样每次查询用时为O(1),总用时为O(n). hash的本质是把值映射到地址或者下标,如果不同的key值对应到相同的indice上的话,就需要进行chaining处理,吧indice指向一个链表,链表的每一个节点存储共享同一indice的不同key值. 因此问题的核心变成:吧相等的雪花映射到相同的indice上.这里雪花是一个…
题目链接. 分析: 哈希竟然能这么用.检查两片雪花是否相同不难,但如果是直接暴力,定会超时.所以要求哈希值相同时再检查. AC代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <string> #include <algorithm> #include <vector> #include <map> #include <cstr…