1. /*
  2. 有12张连在一起的12生肖的邮票,规格是3*4,即:
  3. 1111
  4. 1111
  5. 1111
  6. 现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)
  7. */
  8.  
  9. /*
  10. 思路:
  11. 先将所有五个一组的情况遍历,然后用广度优先判断是否连通。
  12. */
  13.  
  14. #include<cstdio>
  15. #include<cstring>
  16. #include<algorithm>
  17. #include<iostream>
  18. #include<string>
  19. #include<vector>
  20. #include<stack>
  21. #include<bitset>
  22. #include<cstdlib>
  23. #include<cmath>
  24. #include<set>
  25. #include<list>
  26. #include<deque>
  27. #include<map>
  28. #include<queue>
  29. using namespace std;
  30.  
  31. int a[]= {,,,,,,,,,,,};//邮票数组
  32. int vis[]; //规格:4*5
  33. /*
  34. 在逻辑上可以将vis数组看成:
  35. 01 02 03 04 00
  36. 06 07 08 09 00
  37. 11 12 13 14 00
  38. 00 00 00 00 00
  39. */
  40.  
  41. int main()
  42. {
  43. int sum=; //可行解的总数
  44. for(int i1=; i1<; i1++)
  45. for(int i2=i1+; i2<; i2++)
  46. for(int i3=i2+; i3<; i3++)
  47. for(int i4=i3+; i4<; i4++)
  48. for(int i5=i4+; i5<; i5++)
  49. {
  50. memset (vis,,sizeof(vis)); //每次验证一个解是否可行之前先将标志数组初始化
  51. int p=; //当前解的连通度
  52. vis[a[i1]]=; //a[]是邮票数组
  53. vis[a[i2]]=;
  54. vis[a[i3]]=;
  55. vis[a[i4]]=;
  56. vis[a[i5]]=;
  57.  
  58. queue<int>q; //声明一个队列q
  59. q.push(a[i1]); //初始节点入队
  60. vis[a[i1]]=; //入队节点的对应的标志归零
  61. while(!q.empty())
  62. {
  63. int top=q.front();
  64. q.pop();
  65. p++;
  66. if(vis[top+]) { q.push(top+);vis[top+]=; } //验证右连通
  67. if(vis[top+]) { q.push(top+);vis[top+]=; } //验证下连通
  68. if(vis[top-]) { q.push(top-);vis[top-]=; } //验证左连通
  69. if(vis[top-]) { q.push(top-);vis[top-]=; } //验证上连通
  70. }
  71. if(p==) //全连通时p==5
  72. {
  73. sum++;
  74. cout<<a[i1]<<" "<<a[i2]<<" "<<a[i3]<<" "<<a[i4]<<" "<<a[i5]<<endl;
  75. }
  76. }
  77.  
  78. cout<<sum<<endl;
  79. return ;
  80. }

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. 译:2. RabbitMQ Java Client 之 Work Queues (工作队列)

    在上篇揭开RabbitMQ的神秘面纱一文中,我们编写了程序来发送和接收来自命名队列的消息. 本篇我们将创建一个工作队列,工作队列背后的假设是每个任务都交付给一个工作者 本篇是译文,英文原文请移步:ht ...

  2. python实现合并两个文件并打印输出

    # python实现合并两个文件并打印输出 import fileinput file_Path1 = input("请输入第一个合并文件:") file_Path2 = inpu ...

  3. Java和Scala语法比较

    类型推断 挑逗指数: 四星 我们知道,Scala一向以强大的类型推断闻名于世.很多时候,我们无须关心Scala类型推断系统的存在,因为很多时候它推断的结果跟直觉是一致的. Java在2016 年也新增 ...

  4. iOS开发 关于启动页和停留时间的设置

    引言: 在开发一款商业App时,我们大都会为我们的App设置一个启动页. 苹果官方对于iOS启动页的设计说明: 为了增强应用程序启动时的用户体验,您应该提供一个启动图像.启动图像与应用程序的首屏幕看起 ...

  5. vue.js是什么

    Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习, ...

  6. Java知多少(101)图像缓冲技术

    当图像信息量较大,采用以上直接显示的方法,可能前面一部分显示后,显示后面一部分时,由于后面一部分还未从文件读出,使显示呈斑驳现象.为了提高显示效果,许多应用程序都采用图像缓冲技术,即先把图像完整装入内 ...

  7. android中通过intent传递复杂数据

    android中在各个service或者acitivity之间可以通过Intent来传递一些数据,intent原生直接提供了一些简单数据类型的数据的传递,使用起来也很方便,比如int boolean ...

  8. 树莓派集群实践2——修改树莓派3 指定IP,DNS要修改dhcpcd.conf

    vim /etc/dhcpcd.conf 修改如下 interface eth0 static ip_address=192.168.1.177/24 static routers=192.168.1 ...

  9. Error - SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM

    I find using the following works quite well for SQL min/max dates after many DB related errors: Date ...

  10. session一直报错Session store not set on request

    Route::group(['middleware' => ['web']], function () { //});仍然报错,看了 session是使用默认file,没问题:app/stora ...