• poj3349


    http://poj.org/problem?id=3349

    每个雪花都有六个分支,用六个整数代表,这六个整数是从任意一个分支开始,朝顺时针或逆时针方向遍历得到的。输入多个雪花,判断是否有形状一致的雪花存在。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n;
    struct node{
        int xh[7];
    }snow[15000][101];
    int m[15000];
    bool pd(node a,node b)
    {
        sort(a.xh,a.xh+6);
        sort(b.xh,b.xh+6);
        for(int i=0;i<6;i++)
            if(a.xh[i]!=b.xh[i])
                return false;
        return true;
    }
    int main()
    {
        scanf("%d",&n);
        int ok=0;
        memset(m,0,sizeof m);
        for(int i=0;i<n;i++)
        {
            int sum=0;
            node pp;
            for(int j=0;j<6;j++)
            {
                scanf("%d",&pp.xh[j]);
                sum=(sum+pp.xh[j])%14497;
            } 
            if(ok==0)
            {
                for(int j=0;j<m[sum];j++)
                    if(pd(pp,snow[sum][j])){
                        ok=1;break;
                    }
                snow[sum][m[sum]]=pp;
                m[sum]++;
            }
        }
        if(ok)
            printf("Twin snowflakes found.
    ");
        else 
            printf("No two snowflakes are alike.
    ");
        return 0;
    }
  • 相关阅读:
    兄弟连学python(1)——MySQL
    运算和运算符相关知识
    关于python中的快捷键
    关于爬虫
    Hello Python
    [ARC101C] Ribbons on Tree
    CF568E Longest Increasing Subsequence
    2021省选游记
    [NEERC2015]Distance on Triangulation
    dp的一些优化
  • 原文地址:https://www.cnblogs.com/xiaoningmeng/p/5893684.html
Copyright © 2020-2023  润新知