• 蓝桥杯剪邮票


    #include <stdio.h>
    #include <algorithm>
    #include <iostream>
    #include <map>
    #include <stdlib.h>
    #include <cmath>
    #include <memory.h>
    using namespace std;
    int ans=0,temp=0;
    int vis[12];
    int dir[4]= {-4,4,-1,1};
    int countt=0;
    void dfs(int n)
    {
        countt++;
        vis[n]=0;
        //cout<<"n:"<<n<<endl;
        if(n-4>=0&&vis[n-4]) dfs(n-4);
        if(n+4<12&&vis[n+4]) dfs(n+4);
        if(n-1>=0&&n!=4&&n!=8&&vis[n-1]) dfs(n-1);
        if(n+1<12&&n!=3&&n!=7&&vis[n+1]) dfs(n+1);
    }
    int main()
    {
        memset(vis,0,sizeof(vis));
        for(int a=0; a<12; a++)
        {
            for(int b=a+1; b<12; b++)
            {
                for(int c=b+1; c<12; c++)
                {
                    for(int d=c+1; d<12; d++)
                    {
                        for(int e=d+1; e<12; e++)
                        {
                            vis[a]=1;
                            vis[b]=1;
                            vis[c]=1;
                            vis[d]=1;
                            vis[e]=1;
                            countt=0;
                            dfs(e);
                            if(countt==5)
                            {
                                //cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<endl;
                                ans++;
                            }
                            vis[e]=0;
                        }
                        vis[d]=0;
                    }
                    vis[c]=0;
                }
                vis[b]=0;
            }
           vis[a]=0;
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code

    因为是填空题 就用了暴力枚举5个格子然后dfs判断这5个格子是否联通

  • 相关阅读:
    线性最大子数组的求法(二)
    高难度智力题
    职业规划
    良好的学习习惯
    毕业生面试绝招
    编写Java程序最容易犯的21种错误
    spring02
    spring_01
    用soapUI生成客户端代码
    idea创建git分支
  • 原文地址:https://www.cnblogs.com/wangkaipeng/p/6678896.html
Copyright © 2020-2023  润新知