青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

poj3349

Snowflake Snow Snowflakes

Time Limit: 4000MS Memory Limit: 65536K
Total Submissions: 22730 Accepted: 5923

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 program will read information about a collection of snowflakes, and search for a pair that may be identical. Each snowflake has six arms. For each snowflake, your program will be provided with a measurement of the length of each of the six arms. Any pair of snowflakes which have the same lengths of corresponding arms should be flagged by your program as possibly identical.

Input

The first line of input will contain a single integer n, 0 < n ≤ 100000, the number of snowflakes to follow. This will be followed by n lines, each describing a snowflake. Each snowflake will be described by a line containing six integers (each integer is at least 0 and less than 10000000), the lengths of the arms of the snow ake. The lengths of the arms will be given in order around the snowflake (either clockwise or counterclockwise), but they may begin with any of the six arms. For example, the same snowflake could be described as 1 2 3 4 5 6 or 4 3 2 1 6 5.

Output

If all of the snowflakes are distinct, your program should print the message:
No two snowflakes are alike.
If there is a pair of possibly identical snow akes, your program should print the message:
Twin snowflakes found.

Sample Input

2
1 2 3 4 5 6
4 3 2 1 6 5

Sample Output

Twin snowflakes found.
 
忽然發現自己已經好長時間沒寫過hash的題目了
這題寫了半天,覺著寫的特別混亂,然后刪掉重新寫
這樣看起來簡單多了
用的直接相加求和模大質數的hash
#include <cstdio>
#include 
<cstdlib>
#include 
<cstring>
#include 
<cmath>
#include 
<ctime>
#include 
<cassert>
#include 
<iostream>
#include 
<sstream>
#include 
<fstream>
#include 
<map>
#include 
<set>
#include 
<vector>
#include 
<queue>
#include 
<algorithm>
#include 
<iomanip>
#define maxn 100001
#define bp 999983
using namespace std;
struct node
{
    
int x[6];
    
int next;
}
 s[maxn],tmp;
int sec;
struct node2
{
    
int x[6];
    
void init()
    
{
        
for(int i=0; i<6; i++) scanf("%d",&x[i]);
    }

}
 a[maxn];
int n;
int head[1000001];
bool flag[1000001];
int hs;
inline 
int hash(node2 t)
{
    
return (t.x[0]%bp+t.x[1]%bp+t.x[2]%bp+t.x[3]%bp+t.x[4]%bp+t.x[5]%bp)%bp;
}

void add(int hhh,node t)
{
    s[sec]
=t;
    s[sec].next
=head[hhh];
    head[hhh]
=sec++;
}

bool pans(node t1,node t2)
{
    
if(t1.x[0]==t2.x[0]&&t1.x[1]==t2.x[1]&&t1.x[2]==t2.x[2]&&t1.x[3]==t2.x[3]&&t1.x[4]==t2.x[4]&&t1.x[5]==t2.x[5]) return 1;
    
if(t1.x[0]==t2.x[1]&&t1.x[1]==t2.x[2]&&t1.x[2]==t2.x[3]&&t1.x[3]==t2.x[4]&&t1.x[4]==t2.x[5]&&t1.x[5]==t2.x[0]) return 1;
    
if(t1.x[0]==t2.x[2]&&t1.x[1]==t2.x[3]&&t1.x[2]==t2.x[4]&&t1.x[3]==t2.x[5]&&t1.x[4]==t2.x[0]&&t1.x[5]==t2.x[1]) return 1;
    
if(t1.x[0]==t2.x[3]&&t1.x[1]==t2.x[4]&&t1.x[2]==t2.x[5]&&t1.x[3]==t2.x[0]&&t1.x[4]==t2.x[1]&&t1.x[5]==t2.x[2]) return 1;
    
if(t1.x[0]==t2.x[4]&&t1.x[1]==t2.x[5]&&t1.x[2]==t2.x[0]&&t1.x[3]==t2.x[1]&&t1.x[4]==t2.x[2]&&t1.x[5]==t2.x[3]) return 1;
    
if(t1.x[0]==t2.x[5]&&t1.x[1]==t2.x[0]&&t1.x[2]==t2.x[1]&&t1.x[3]==t2.x[2]&&t1.x[4]==t2.x[3]&&t1.x[5]==t2.x[4]) return 1;
    
return 0;
}

bool pann(node t1,node t2)
{
    node tmp1;
    
for(int i=0;i<6;i++) tmp1.x[i]=t1.x[5-i];    
    
if(tmp1.x[0]==t2.x[0]&&tmp1.x[1]==t2.x[1]&&tmp1.x[2]==t2.x[2]&&tmp1.x[3]==t2.x[3]&&tmp1.x[4]==t2.x[4]&&tmp1.x[5]==t2.x[5]) return 1;
    
if(tmp1.x[0]==t2.x[1]&&tmp1.x[1]==t2.x[2]&&tmp1.x[2]==t2.x[3]&&tmp1.x[3]==t2.x[4]&&tmp1.x[4]==t2.x[5]&&tmp1.x[5]==t2.x[0]) return 1;
    
if(tmp1.x[0]==t2.x[2]&&tmp1.x[1]==t2.x[3]&&tmp1.x[2]==t2.x[4]&&tmp1.x[3]==t2.x[5]&&tmp1.x[4]==t2.x[0]&&tmp1.x[5]==t2.x[1]) return 1;
    
if(tmp1.x[0]==t2.x[3]&&tmp1.x[1]==t2.x[4]&&tmp1.x[2]==t2.x[5]&&tmp1.x[3]==t2.x[0]&&tmp1.x[4]==t2.x[1]&&tmp1.x[5]==t2.x[2]) return 1;
    
if(tmp1.x[0]==t2.x[4]&&tmp1.x[1]==t2.x[5]&&tmp1.x[2]==t2.x[0]&&tmp1.x[3]==t2.x[1]&&tmp1.x[4]==t2.x[2]&&tmp1.x[5]==t2.x[3]) return 1;
    
if(tmp1.x[0]==t2.x[5]&&tmp1.x[1]==t2.x[0]&&tmp1.x[2]==t2.x[1]&&tmp1.x[3]==t2.x[2]&&tmp1.x[4]==t2.x[3]&&tmp1.x[5]==t2.x[4]) return 1;
    
return 0;
}

int main()
{
    scanf(
"%d",&n);
    
for(int i=1; i<=n; i++) a[i].init();
    memset(flag,
0,sizeof(flag));
    memset(head,
-1,sizeof(head));
    sec
=0;
    
bool isex;
    isex
=false;
    
for(int i=1; i<=n; i++)
    
{
        hs
=hash(a[i]);
        
if(!flag[hs])
        
{
            flag[hs]
=1;
            
for(int j=0; j<6; j++) tmp.x[j]=a[i].x[j];
            add(hs,tmp);
        }

        
else
        
{
            
for(int j=0; j<6; j++) tmp.x[j]=a[i].x[j];
            
for(int j=head[hs]; j!=-1; j=s[j].next)
            
{
                
if(pans(tmp,s[j])||pann(tmp,s[j]))
                
{
                    isex
=1;
                    printf(
"Twin snowflakes found.\n");
                    
return 0;
                }

                
else 
                
{
                    add(hs,tmp);
                }

            }

        }

    }

    
if(isex==0) printf("No two snowflakes are alike.\n");
    
return 0;
}

posted on 2012-07-24 13:30 jh818012 閱讀(260) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

常用鏈接

留言簿

文章檔案(85)

搜索

最新評論

  • 1.?re: poj1426
  • 我嚓,,輝哥,,居然搜到你的題解了
  • --season
  • 2.?re: poj3083
  • @王私江
    (8+i)&3 相當于是 取余3的意思 因為 3 的 二進制是 000011 和(8+i)
  • --游客
  • 3.?re: poj3414[未登錄]
  • @王私江
    0ms
  • --jh818012
  • 4.?re: poj3414
  • 200+行,跑了多少ms呢?我的130+行哦,你菜啦,哈哈。
  • --王私江
  • 5.?re: poj1426
  • 評論內容較長,點擊標題查看
  • --王私江
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区区二区| 亚洲欧美国产精品va在线观看 | 欧美性一二三区| 一区在线免费| 久久se精品一区二区| 一本色道久久88综合日韩精品| 看欧美日韩国产| 极品少妇一区二区三区精品视频| 亚洲免费在线视频| 亚洲伦理精品| 欧美色道久久88综合亚洲精品| 亚洲日本无吗高清不卡| 欧美黄免费看| 美女任你摸久久| 在线不卡中文字幕播放| 美日韩丰满少妇在线观看| 久久精品亚洲国产奇米99| 国产综合色产在线精品| 欧美日韩成人在线观看| 亚洲另类在线视频| 最近看过的日韩成人| 久久在线视频在线| 亚洲国产精品ⅴa在线观看| 亚洲大片免费看| 欧美电影在线观看完整版| 91久久精品美女| 亚洲日本黄色| 国产精品久久久亚洲一区| 亚洲欧美日韩在线高清直播| 亚洲在线1234| 国产一区二区三区四区老人| 美女精品国产| 女人天堂亚洲aⅴ在线观看| 影院欧美亚洲| 亚洲日本一区二区| 国产精品久久久久一区二区三区共 | 国产色综合久久| 久久成人羞羞网站| 亚洲欧美一区二区三区在线| 好吊成人免视频| 免费在线观看成人av| 欧美国产视频日韩| 亚洲午夜精品网| 午夜精品999| 亚洲福利视频二区| 亚洲伦理精品| 国产午夜精品麻豆| 亚洲国产日韩欧美在线99| 欧美日韩一区二区三区视频| 性欧美xxxx视频在线观看| 久久av一区二区三区| 亚洲人成小说网站色在线| 亚洲另类自拍| 久久精品毛片| 亚洲视频精选| 久久精品成人欧美大片古装| 亚洲伦理在线观看| 亚洲欧美日韩精品久久| 亚洲精品国产欧美| 亚洲免费视频中文字幕| 亚洲国产精品电影在线观看| 在线午夜精品自拍| 亚洲高清电影| 91久久精品日日躁夜夜躁国产| 99日韩精品| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲精品视频在线播放| 国模一区二区三区| 这里只有精品电影| 亚洲经典三级| 午夜精品久久久久久| 亚洲精品网址在线观看| 香蕉精品999视频一区二区| 日韩网站免费观看| 久久成年人视频| 亚洲一区二区欧美| 欧美黄色网络| 蜜月aⅴ免费一区二区三区| 国产精品久线观看视频| 亚洲电影观看| 亚洲国产精品嫩草影院| 欧美在线网站| 欧美一区日韩一区| 欧美午夜精品久久久久久超碰| 亚洲国产欧美另类丝袜| 国产精品成人免费精品自在线观看| 欧美高清视频一区| 尤妮丝一区二区裸体视频| 香港成人在线视频| 欧美一区成人| 国产精品美女久久久久久久 | 国产日韩欧美三区| 在线一区亚洲| 亚洲午夜日本在线观看| 欧美日韩调教| 99精品99| 亚洲四色影视在线观看| 欧美日韩精品| 亚洲看片一区| 欧美激情一区二区三区在线视频| 影音先锋亚洲视频| 欧美在线播放一区| 久久精选视频| 欧美国产亚洲视频| 亚洲欧洲日韩女同| 欧美α欧美αv大片| 国产精品私房写真福利视频| 亚洲国产精品久久久久秋霞不卡 | 久久久噜噜噜久久久| 免费看精品久久片| 亚洲电影激情视频网站| 国产乱肥老妇国产一区二| 亚洲精品国产精品国自产观看| 99国产一区| 欧美激情综合网| 久久成人免费网| 亚洲欧美日韩在线播放| 久久色中文字幕| 久久中文在线| 亚洲视频在线观看视频| 在线视频欧美一区| 欧美色123| 亚洲欧美精品伊人久久| 欧美中文字幕在线| 黄色成人av| 欧美寡妇偷汉性猛交| 日韩一级成人av| 欧美主播一区二区三区| 激情文学综合丁香| 欧美精品精品一区| 亚洲在线视频观看| 美日韩精品免费| 99在线热播精品免费| 国产欧美一区二区三区沐欲| 久久艳片www.17c.com| 亚洲精品一区二区三区99| 亚洲欧美日韩精品一区二区| 国产一区av在线| 欧美激情91| 午夜精品亚洲一区二区三区嫩草| 欧美成人免费观看| 午夜国产精品影院在线观看| 在线不卡视频| 欧美精品在线播放| 亚洲欧美精品在线| 91久久香蕉国产日韩欧美9色| 亚洲一区影音先锋| 精品动漫一区| 国产精品视频999| 免费欧美日韩| 欧美一区二区在线播放| 亚洲精品欧美精品| 久久亚洲电影| 亚洲免费在线观看| 亚洲精品乱码久久久久久按摩观 | 久久精品国产一区二区三| 亚洲国产合集| 欧美一区二区免费| 日韩亚洲欧美一区| 伊人成人网在线看| 欧美午夜影院| 欧美日韩第一区日日骚| 欧美在线一二三区| 亚洲视频精品在线| 91久久黄色| 欧美大片91| 久久青草久久| 欧美一区二区日韩| 亚洲男人天堂2024| 99国产精品视频免费观看| 在线日韩精品视频| 国产在线精品成人一区二区三区| 国产精品久久久久毛片大屁完整版 | 亚洲视频一区| 99在线精品观看| 亚洲片区在线| 亚洲国产综合91精品麻豆| 免费视频久久| 另类av导航| 久久综合九色综合网站| 久久精品青青大伊人av| 午夜在线a亚洲v天堂网2018| 亚洲一级黄色av| 一区二区三区 在线观看视频| 国产网站欧美日韩免费精品在线观看| 欧美日韩午夜剧场| 欧美三级免费| 国产精品日本精品| 国产精品免费观看视频| 国产精品久久久久一区二区三区共 | 亚洲男人av电影| 亚洲免费影院| 欧美亚洲网站| 久久久www成人免费毛片麻豆| 欧美一区二区在线| 久久久精品国产免大香伊| 久久亚洲高清| 欧美精品日韩三级| 国产精品v欧美精品v日韩精品| 久久躁狠狠躁夜夜爽|