zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    大小端模式
    深入理解c/c++ 内存对齐
    示波器使用
    C结构体
    51单片机内存问题
    S5PV210启动过程详解1
    程序中内存从哪里来
    再论typedef
    ARM体系结构总结
    MMU实验实验
  • 原文地址:https://www.cnblogs.com/xiaoningmeng/p/5893684.html
Copyright © 2011-2022 走看看