zoukankan      html  css  js  c++  java
  • 哈希 poj 3349

    n个雪花

    判断有没有相同的

    正的和倒的相同都可以

    哈希一下  比的少了就可以

     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<string.h>
     4 #include<math.h>
     5 
     6 using namespace std;
     7 
     8 #define MAXN  15010
     9 #define mod   14997
    10 int cnt[MAXN];
    11 struct node
    12 {
    13     int s[7];
    14 
    15 }x[MAXN][100];
    16 
    17 bool jud(node a,int pos,int num)
    18 {
    19     int i,j;
    20     for(i=0;i<6;i++)
    21     {
    22         for(j=0;j<6;j++)  //正的
    23             if(a.s[j]!=x[pos][num].s[(i+j)%6])
    24                 break;
    25         if(j==6)
    26         return true;
    27         for(j=0;j<6;j++)   //倒的
    28             if(a.s[j]!=x[pos][num].s[(i-j+6)%6])
    29                 break;
    30         if(j==6)
    31         return true;
    32     }
    33     return false;
    34 }
    35 int main()
    36 {
    37     int n;
    38     scanf("%d",&n);
    39     node a;
    40     memset(cnt,0,sizeof(cnt));
    41 
    42     for(int i=1;i<=n;i++)
    43     {
    44         int sum=0;
    45         for(int j=0;j<6;j++)
    46         {
    47             scanf("%d",&a.s[j]);
    48             sum=sum+a.s[j];
    49         }
    50         int pos=sum%mod;
    51         for(int j=0;j<cnt[pos];j++)
    52         {
    53             if(jud(a,pos,j))
    54             {
    55                 printf("Twin snowflakes found.
    ");
    56                 return 0;
    57             }
    58         }
    59         x[pos][cnt[pos]]=a;
    60         cnt[pos]++;
    61     }
    62     printf("No two snowflakes are alike.
    ");
    63     return 0;
    64 }
  • 相关阅读:
    Virtualbox-CentOS网络配置
    使用phpmyadmin创建数据库
    Vue CLI的使用
    webpack3的使用
    Vue组件化之插槽
    Vue组件化开发
    Vue高级技巧
    Vue基础学习笔记
    Git解决冲突和diff用法
    Git常用命令举例
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6097795.html
Copyright © 2011-2022 走看看