符号三角形的 第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“,2个异 号下面是”-“ 。计算有多少个不同的符号三角形,使其所含”+“ 和”-“ 的个数相同 。 n=7时的1个符号三角形如下:
+ + - + - + +
+ - - - - +
- + + + -
- + + -
- + -
- -
+

Input

每行1个正整数n <=24,n=0退出.

Output

n和符号三角形的个数.

Sample Input

15
16
19
20
0

Sample Output

15 1896
16 5160
19 32757
20 59984

还行吧 比较水 只是???为何我改这么久 只要找到第一层就可以了

代码:

//package 搜索;
import java.util.Scanner;
import java.lang.Math;
public class Main {static int n,sum;static Scanner sc = new Scanner(System.in);static int total[] = {0,0,0,4,6,0,0,12,40,0,0,171,410,0,0,1896,5160,0,0,32757,59984,0,0,431095,822229};static int tan[][] = new int[30][30];static void DFS(int num,int main,int minus,int floor) //表示层数{if(num > floor){for(int i = 2; i <= floor; i++){for(int j = 1; j <= floor + 1 - i; j++){tan[i][j] = (tan[i - 1][j] ^ tan[i - 1][j + 1]) == 0 ? 1 : 0;if(tan[i][j] == 1)main++;else minus++;}}if(main == minus)sum++;return ;}tan[1][num] = 1;DFS(num + 1,main + 1,minus,floor);//第一个0表示的是'+' 第二个0表示'-'tan[1][num] = 0;DFS(num + 1,main,minus + 1,floor);return ;}static void init(){int cnt = 0;for(int i = 1; i <= 24; i++){cnt += i;if(cnt % 2 == 1){total[i] = 0;continue;}sum = 0;DFS(1,0,0,i);total[i] = sum;}for(int i = 1;i <= 24;i++)System.out.println(i+"  " + total[i]);}public static void main(String[]args){
//      init();while(sc.hasNext()){n = sc.nextInt();if(n == 0)break;System.out.println(n+" "+total[n]);}     }
}

HDU-2510(深搜)相关推荐

  1. hdu 1312深搜入门题

    2019独角兽企业重金招聘Python工程师标准>>> Red and Black Problem Description There is a rectangular room, ...

  2. HDU 1010 深搜+奇偶剪枝

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1010 贴个资料: http://acm.hdu.edu.cn/forum/read.php?tid=615 ...

  3. Black And White HDU - 5113 深搜dfs+剪枝

    原题 Problem Description In mathematics, the four color theorem, or the four color map theorem, states ...

  4. hdu 3812 Sea Sky 深搜+剪枝

    题目意思: 从sea 找一条道sky 的最长路 题解: 先进行一系列的预处理 1.将所有不重复的字符串先保留下来,然后从小到大排序,这样深搜的时候最先弄出来的答案就是最小的 字母序. 2. 进行深度优 ...

  5. 深搜、广搜、搜索剪枝

    搜索与回溯讲解 文章目录 深搜 方向向量: DFS代码: 题目讲解: 八皇后问题 字符序列 自然数的拆分 广搜 BFS代码: 题目讲解: 瓷砖 关系网络 bfs与dfs的用途与区别 搜索剪枝 可行性剪 ...

  6. hdu1667The Rotation Game 迭代深搜IDA*

    题目链接:http://acm.hdu.edu.cn/data/images/1667-1.jpg 题目是这个棋盘里面摆放着8个1,8个2和8个3,每一步你可以沿着A.B. C.D.E.F.G.H任意 ...

  7. 算法之路——深搜、广搜(简单搜索)

    搜索 通过一定的顺序,枚举每一个数据(经常会通过一些判断条件去掉无意义的数据,即剪枝),找到想要的数据的过程. 深度优先搜索(dfs) 深度优先搜索属于图算法的一种,是一个针对图和树的算法,应为缩写为 ...

  8. 专题一:简单搜索、深搜、广搜

    挑战程序设计竞赛(课后题难题汇总) 1. AOJ 0033 Ball(贪心) #include<cstdio> #include<algorithm> using namesp ...

  9. Go 分布式学习利器(15) -- Go 实现 深搜和广搜

    强化语法,回顾算法. 通过Go语言实现 深度优先搜索 和 广度优先搜索,来查找社交网络中的三度好友关系(三度指的是一个节点到 其相邻节点 到 其相邻节点的节点 ,图递增三层好友关系). 涉及到的Go语 ...

  10. 水管工游戏 (深搜)

    水管工游戏 本题依然是采用搜索,深搜,广搜都可以,本代码采用深搜,此题在搜索时需要增加一些判断条件以及下一步要搜索的位置即可. 代码如下: #include<stdio.h> int a[ ...

最新文章

  1. mysql注入攻击与防御word_SQL注入防御与绕过的几种姿势
  2. linux中DNS的介绍及DNS的高速缓存
  3. 【PAT甲级】1037 Magic Coupon (25 分) C++ 全部AC
  4. 交换机两个链路相连一些设置
  5. Android学习总结(1)——好的 Android 开发习惯
  6. viper4android fx2.7,ViPER4Android FX下载-ViPER4Android FX(蝰蛇音效fx)2.7.1.0 安卓版下载_东坡手机下载...
  7. Google高级搜索命令
  8. 小程序+二维码(带logo图片,可直接运行)
  9. JavaScript常见问题及答案
  10. Photoshop设计网站原型图
  11. mybatis如何判断update操作是否成功
  12. 以太坊solidity智能合约-生成随机数
  13. 【递推矩阵快速幂】hdu 2604
  14. KDJ金叉死叉分析以及KDJ金叉的买点形态
  15. js如何运行python代码_手把手教你如何使用Python执行js代码
  16. (收藏)刘德华获奖全记录“经典”
  17. Walle 瓦力 安装部署
  18. springBoot经验积累
  19. thinkpad 开机按f12
  20. C语言开发环境,请查收

热门文章

  1. 为ASP.NET封装的SQL数据库访问类(转)
  2. ASP.NET对IIS中的虚拟目录进行操作
  3. PHP htmlspecialchars() 函数
  4. Web 网页开发的一点心得
  5. 【php】基础学习4
  6. ubuntu 下 apache2 查看 已加载的模块 命令
  7. Dropout原理介绍
  8. Java IO-03 字节流和字符流
  9. Debian下安装搜狗拼音输入法
  10. git fork的项目与原作者同步