zoukankan      html  css  js  c++  java
  • Snowflake Snow Snowflakes哈希

    题意是每个雪花有六个臂,每个臂有一个值,如果两个雪花的臂顺时针或者逆时针相等,那么这两个雪花相等

    给你n个雪花,问你是否有两个雪花相等

    #include<stdio.h>
    #include<vector>
    using namespace std;
    const int maxn=100005;
    int xue[maxn][12];
    vector<int>hashtable[100005];
    bool cmp1(int a,int b,int i,int j)
    {
        for (int k=0; k<6 ; k++ )
        {
            if(xue[a][i+k]!=xue[b][j+k])
            {
                return false;
            }
        }
        return true;
    }
    bool cmp2(int a,int b,int i,int j)
    {
        for (int k=0; k<6 ; k++ )
        {
            if(xue[a][i+k]!=xue[b][j+5-k])
            {
                return false;
            }
        }
        return true;
    }
    bool issame(int a,int b)
    {
        for (int i=0; i<6 ; i++ )
        {
            for (int j=0; j<6 ; j++ )
            {
                if(cmp1(a,b,i,j)||cmp2(a,b,i,j))
                {
                    return true;
                }
            }
        }
        return false;
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        int ok=0;
        for (int i=0; i<n ; i++ )
        {
            int sum=0;
            for (int j=0; j<6 ; j++ )
            {
                scanf("%d",&xue[i][j]);
                xue[i][j+6]=xue[i][j];
                sum+=xue[i][j];
            }
            sum%=maxn;
            if(!ok)
            {
                for (int j=0; j<hashtable[sum].size() ; j++ )
                {
                    if(issame(hashtable[sum][j],i))
                    {
                        ok=1;
                        break;
                    }
                }
                hashtable[sum].push_back(i);
            }
        }
        if(ok)
        {
            printf("Twin snowflakes found.");
        }
        else
        {
            printf("No two snowflakes are alike.");
        }
        return 0;
    }
  • 相关阅读:
    1856: [Scoi2010]字符串(Catalan数)
    11.6NOIP模拟赛
    bzoj1257[CQOI2007]余数之和(除法分块)
    11.5NOIP模拟赛
    bzoj1048(记忆化搜索)
    置顶公告+更新日志
    CF585F Digits of Number Pi
    [SHOI2007]善意的投票
    [HEOI2015]最短不公共子串
    树形背包复杂度+P3177 [HAOI2015]树上染色
  • 原文地址:https://www.cnblogs.com/Json-Five/p/9792670.html
Copyright © 2011-2022 走看看