zoukankan      html  css  js  c++  java
  • 16年第七届蓝桥杯第七题_剪邮票

    剪邮票

    如【图1.jpg】, 有12张连在一起的12生肖的邮票。
    现在你要从中剪下5张来,要求必须是连着的。
    (仅仅连接一个角不算相连)
    比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。

    请你计算,一共有多少种不同的剪取方法。

    请填写表示方案数目的整数。
    注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

    //枚举所有可能的组合,然后判断是否连通
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int kind[5];
    int dir[4][2]={-1,0,0,1,1,0,0,-1};
    bool vis[13];
    
    bool legal(int x,int y)
    {
        return (x>=0&&x<3&&y>=0&&y<4);
    }
    
    int tmpres;
    void dfs(int x,int y)
    {
        for(int i=0;i<4;i++)
        {
            int xx=x+dir[i][0];
            int yy=y+dir[i][1];
            if(legal(xx,yy))
            {
                int has=0;
                for(int j=0;j<=4;j++)
                    if(kind[j]-1==xx*4+yy)
                        has=1;
                if(has&&vis[xx*4+yy]==0)
                {
                    tmpres++;
                    vis[xx*4+yy]=1;
                    dfs(xx,yy);
                }
            }
        }
    }
    int main()
    {
        int res=0;
        for(int i=1;i<=12;i++)
        {
            kind[0]=i;
            for(int j=i+1;j<=12;j++)
            {
                kind[1]=j;
                for(int k=j+1;k<=12;k++)
                {
                    kind[2]=k;
                    for(int e=k+1;e<=12;e++)
                    {
                        kind[3]=e;
                        for(int f=e+1;f<=12;f++)
                        {
                            kind[4]=f;
                            tmpres=1;
                            memset(vis,0,sizeof(vis));
                            vis[kind[0]-1]=1;
                            dfs((kind[0]-1)/4,(kind[0]-1)%4);
                            if(tmpres==5)    
                                res++;
                        }
                    }
                }
            }
        }
        cout<<res<<endl;
        return 0;
    }
  • 相关阅读:
    OpenGL模板 Mac Cmake OpenGL(Glut) Template
    CodeForces 277A Learning Languages (并检查集合)
    Linux netstat订购具体解释
    POJ 1936 All in All
    他的第一个NDK的Demo
    [ACM] POJ 2418 Hardwood Species (Trie树或map)
    Swift
    Swift
    Swift
    Swift
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/6664588.html
Copyright © 2011-2022 走看看