幸运三角形

时间限制:1000 ms  |  内存限制:65535 KB
难度:3

描述

话说有这么一个图形,只有两种符号组成(‘+’或者‘-’),图形的最上层有n个符号,往下个数依次减一,形成倒置的金字塔形状,除第一层外(第一层为所有可能情况),每层形状都由上层决定,相邻的符号相同,则下层的符号为‘+’,反之,为‘-’;如下图所示(n = 3 时的两种情况):

如果图中的两种符号个数相同,那这个三角形就是幸运三角形,如上图中的图(2).

输入
有多组测试数据(少于20组)。
每行含一个整数n(0<n<20)。
输出
输出相应的幸运三角形个数。
样例输入
3
4
样例输出
4
6
来源
原创
上传者
ACM_杨延玺
算法思想:把+看成1,把-看成0,具体看代码实现
 1 #include<stdio.h>
 2 int b[25][25];
 3 int n,ans;
 4 void dfs(int z,int x,int y)    //x = 0(表示'-'),y = 1(表示'+'),
 5 {
 6     int x1,y1;
 7     if(z == n)
 8     {
 9         if(x == y)
10         {
11             ans++;
12             return;
13         }
14         return;
15     }
16     for(int k=0; k<=1; k++)
17     {
18         x1 = x,y1 = y;
19         b[0][z] = k;    //用来存储三角形第一行
20         b[0][z]>0 ? y1++ : x1++;
21         for(int i=1,j=z-1; j>=0; i++,j--)    //用来判断上一行相邻数
22         {
23             b[i][j] = b[i-1][j] ^ b[i-1][j+1];    //(1^0 || 0^1 == 0); (1^1 || 0^0 == 1)
24             b[i][j]>0 ? y1++ : x1++;
25         }
26         dfs(z+1,x1,y1);
27     }
28 }
29 int main()
30 {
31     int a[25];
32     a[0] = 0;
33     for(int i=1; i<=20; i++)    //a[25]用来存储n三角形为偶数还是奇数
34         a[i] = (a[i-1]+i);
35     while(scanf("%d",&n)!=EOF)
36     {
37         ans = 0;
38         if(a[n]%2 == 0)    //为偶数时才可能有幸运三角形
39             dfs(0,0,0);
40         printf("%d\n",ans);
41     }
42     return 0;
43 }

转载于:https://www.cnblogs.com/-skyblue/p/9364931.html

幸运三角形 南阳acm491(dfs)相关推荐

  1. NYOJ-491 幸运三角形

    幸运三角形 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 话说有这么一个图形,只有两种符号组成('+'或者'-'),图形的最上层有n个符号,往下个数依次减一,形成倒置的 ...

  2. 蓝桥杯 历届试题 幸运数 (堆+DFS)

    传送门:蓝桥杯 题目大意: 求区间 [m,n] 中幸运数的个数. 锦囊2: 从左到右扫描,用一下堆来处理,堆的每项记录下要删的倍数和当前删到的值,以当前删到的值建小根堆.每次取出一个加上一次倍数再放回 ...

  3. 蓝桥javab组数字三角形--dfs的思路

    数字三角形 基本思想 dfs模板 蓝桥javab组数字三角形 思路 代码 基本思想 第一次学习dfs的同学也许像我一样,刚开始学习的时候,感觉在写dfs不知道要干些什么. 首先我们要知道dfs和bfs ...

  4. 一些经典的算法题目cpp

    每日两题cpp 组队竞赛(贪心) 删除公共字符(哈希) 排序子序列(数组) 倒置字符串(字符串) 数组中出现次数超过一半的数字(数组) 进制转换(数学) 连续最大和(贪心,动态规划) 不要二(贪心,数 ...

  5. [蓝桥杯][2013年第四届真题]幸运数-模拟+dfs

    题目描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,- 1 就是第一个幸运数. 我们从2这个数开始.把所 ...

  6. 51Nod - 1588 幸运树(DFS)

    题目链接:51nod1588幸运树 思路 可以发现先看一个点,找出这个点走非幸运的边最多能走到s个点(最少为1),这个点的贡献答案就是(n-s)*(n-s-1),也就是从(n-s)个点中选择两个点,还 ...

  7. 符号三角形-计算机算法设计与分析【1600+字解析 dfs全排列 列举情况】【题意分析】【算法分析】【思路是怎么来的】【过程是什么】

    符号三角形 题意分析 思路过程分析 算法分析 下图是由14个"+"和14个"-"组成的符号三角形.2个同号下面都是"+",2个异号下面都是& ...

  8. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs

    时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...

  9. 南阳32--组合数(Dfs)

    组合数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 找出从自然数1.2.... .n(0<n<10)中任取r(0<r<=n)个数的所有组合. ...

最新文章

  1. C4D和Redshift:2D矢量到三维渲染 Cinema 4D and Redshift: 2D vector to 3D render
  2. 【MATLAB】数组运算
  3. mysql for 语句执行顺序_MySQL查询语句的执行流程
  4. Python入门100题 | 第052题
  5. 分布式ID-美团(Leaf)
  6. windows 系统监视器_使用Windows 7中的可靠性监视器对计算机问题进行故障排除
  7. 前端学习(2870):Vue路由权限『前后端全解析』1
  8. markdown下编辑latex数学公式
  9. 如何把测试库的统计信息导入到生产库
  10. (16)Verilog模块例化-基本语法(四)(第4天)
  11. 设置webstorm实时预览看这一篇就够了,5分钟解决!!
  12. Windows 10 未安装任何音频输出设备 解决方案
  13. 十一、看门狗定时器实现1秒定时
  14. python里面snip什么意思_文献检索里面SJR是什么,SNIP指标是什么
  15. 【最终幻想15 国王之剑】制作介绍2:最大限度满足角色,背景和道具的要求
  16. python风控模型举例_一文搞定风控模型6大核心指标(附代码)
  17. [机缘参悟-39]:鬼谷子-第五飞箝篇 - 警示之二:赞美的六种类型,谨防享受赞美快感如同鱼儿享受诱饵。
  18. CentOS7下安装配置zookeeper集群及设置开机自启
  19. Mac 与PC键盘的对比及快捷键(黑苹果)
  20. java软件工程师工作业绩_JAVA软件工程师简历自我评价

热门文章

  1. oj运行时错误如何查找原因_VLOOKUP又失灵?避免这四种错误类型
  2. python怎样编写定时程序_Python如何实现定时器功能
  3. android病毒下载地址,LINE病毒查杀
  4. html 甘特图_Rplotly|交互式甘特图(Gantt chart)项目管理/学习计划
  5. java privilege的用法_java反射--注解的定义与运用以及权限拦截
  6. C++内联(inline)函数
  7. STM32F1笔记(十二)DAC
  8. c#中 uint_C#中的uint关键字
  9. python中bool函数_bool()函数以及Python中的示例
  10. windows系统下的云服务器部署tomcat