/*
有12张连在一起的12生肖的邮票,规格是3*4,即:
1111
1111
1111
现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)
*/ /*
思路:
先将所有五个一组的情况遍历,然后用广度优先判断是否连通。
*/ #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std; int a[]= {,,,,,,,,,,,};//邮票数组
int vis[]; //规格:4*5
/*
在逻辑上可以将vis数组看成:
01 02 03 04 00
06 07 08 09 00
11 12 13 14 00
00 00 00 00 00
*/ int main()
{
int sum=; //可行解的总数
for(int i1=; i1<; i1++)
for(int i2=i1+; i2<; i2++)
for(int i3=i2+; i3<; i3++)
for(int i4=i3+; i4<; i4++)
for(int i5=i4+; i5<; i5++)
{
memset (vis,,sizeof(vis)); //每次验证一个解是否可行之前先将标志数组初始化
int p=; //当前解的连通度
vis[a[i1]]=; //a[]是邮票数组
vis[a[i2]]=;
vis[a[i3]]=;
vis[a[i4]]=;
vis[a[i5]]=; queue<int>q; //声明一个队列q
q.push(a[i1]); //初始节点入队
vis[a[i1]]=; //入队节点的对应的标志归零
while(!q.empty())
{
int top=q.front();
q.pop();
p++;
if(vis[top+]) { q.push(top+);vis[top+]=; } //验证右连通
if(vis[top+]) { q.push(top+);vis[top+]=; } //验证下连通
if(vis[top-]) { q.push(top-);vis[top-]=; } //验证左连通
if(vis[top-]) { q.push(top-);vis[top-]=; } //验证上连通
}
if(p==) //全连通时p==5
{
sum++;
cout<<a[i1]<<" "<<a[i2]<<" "<<a[i3]<<" "<<a[i4]<<" "<<a[i5]<<endl;
}
} cout<<sum<<endl;
return ;
}

tz@COI HZAU

2018/3/16

2016年蓝桥杯省赛A组c++第7题(图论)的更多相关文章

  1. 2016年蓝桥杯省赛A组c++第3题(图论)

    /* 有一个含有10个格子的图形,现用0~9填充,连续的数不能填充在相邻的格子中(包括对角线相邻). 现每个数只能填写一次,问有多少种填充方法? 0111 1111 1110 (1表示有格子,0表示没 ...

  2. 2016年蓝桥杯省赛A组c++第9题(逆序串问题)

    /* X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于年代久远,其中许 ...

  3. 2016年蓝桥杯省赛A组c++第8题(暴力求解)

    /* 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和. 如果把0包括进去,就正好可以表示为4个数的平方和. 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 ...

  4. 2016年蓝桥杯省赛A组c++第5题(计算机组成原理)

    /* 下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0 如果最后一位是0,则原数字保持不变. 如果采用代码中的测试数据,应该输出: 0000000000000000000000000110 ...

  5. 2016年蓝桥杯省赛A组c++第4题(算法填空)

    /* 排序在各种场合经常被用到. 快速排序是十分常用的高效率的算法. 其思想是:先选一个“标尺”, 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的元素都不小于它. 这样,排序问题 ...

  6. 2016年蓝桥杯省赛A组c++第2题(暴力求解)

    /* 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日party ...

  7. 2016年蓝桥杯省赛A组c++第1题

    /* 某君新认识一网友. 当问及年龄时,他的网友说: “我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄” 请你计算:网友的年龄一共有多少种可能情况? 提 ...

  8. 2012年蓝桥杯省赛A组c++第3题(喝断片的海盗)

    /* 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒, 所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的, 再次重复...... 直到开了第4瓶酒,坐着的已经所剩无 ...

  9. 2015年蓝桥杯省赛A组c++第5题(回溯算法填空)

    /* 1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. */ #include <stdio.h> void tes ...

随机推荐

  1. Error loading page Domain: WebKitErrorDomain Error Code: 101

    使用 WebView 组件,loading的过程中出现这个错误. 解决方案: webVIew 里面加 renderError={ (e) => { if (e === 'WebKitErrorD ...

  2. 第三部分:Android 应用程序接口指南---第二节:UI---第二章 输入控件

    第2章 输入控件 输入控件是应用程序中用户接口的一种交互式组件.Android提供了大量的可供人们在UI中使用的控件,比如按钮.文本区域.(带滑块的)进度条.复选框.缩放按钮以及切换按钮等等. 在UI ...

  3. 使用vw做移动端页面的适配

    Flexible到今天也有几年的历史了,解救了很多同学针对于H5页面布局的适配问题.而这套方案也相对而言是一个较为成熟的方案.简单的回忆一下,当初为了能让页面更好的适配各种不同的终端,通过Hack手段 ...

  4. 基于CSS3动态背景登录框代码

    基于CSS3动态背景登录框代码.这是一款基于jQuery+CSS3实现的带有动画效果的动态背景登陆框特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class ...

  5. apache kylin2.10在原生hadoop集群上安装

    Install Kylin Download latest Kylin binaries at http://kylin.apache.org/download Export KYLIN_HOME p ...

  6. net use错误原因解决(精辟)(转)

      (1)"发生系统错误 1326. 登录失败: 未知的用户名或错误密码." 在远程机的"控制面板-文件夹选项-查看-简单的文件共享",去掉选取,然后再尝试连接 ...

  7. SQL SERVER EXPRESS 连接字符串

    Microsoft SQL Server Express Edition 为生成应用程序提供了一个简单的数据库解决方案.SQL Server Express Edition 支持完整的 SQL Ser ...

  8. [hive] hive 安装、配置

    一.hive安装 1.官网下载 1.2.2版本 http://apache.fayea.com/hive/hive-1.2.2/ 2. 解压,此处目录为 /opt/hadoop/hive-1.2.2 ...

  9. [React] 03 - Intro: react.js in twelve demos

    Ref: React 入门实例教程 这算什么,react学习例子的十二门徒?哈哈 如何运行别人的react项目? Ref: [React全家桶入门之CODE]项目代码与使用方法 使用git克隆项目到本 ...

  10. springboot logback 集成

    在 application.yml 中敲 logging.pattern.consle ,IDEA 会联想到对应的值.单击属性就可以跳到 LoggingApplicationListener.java ...