n只有24 可以写个暴力搜索,然后打表,不然这个很难通过剪枝直接优化到1s以内。

 #include<bits/stdc++.h>

 #define inf 0x3f3f3f3f

 const int maxn=;

 using namespace std;

 int n,m,ans;

 int res[maxn+]={,,,,,,,,,,,,,,,,,,,,,,,,};

 int a[maxn+][maxn+];

 void dfs(int layer,int lnum,int pos,int nei,int n){
//printf("%d %d %d %d\n",layer,lnum,pos,nei);
if(pos+nei>m) return ;
if(pos-nei>(m-pos-nei)) {
//printf("%d %d\n",pos,nei);
return ;
}
if(layer==&&pos==m/&&nei==m/){
ans++;
return ;
}
if(layer==&&(pos!=m/||nei!=m/)) return ;
if(pos>m/||nei>m/) return ;
if(layer==n&&lnum<=layer){
a[layer][lnum]=;
if(lnum==layer)
dfs(layer-,,pos+,nei,n);
else dfs(layer,lnum+,pos+,nei,n);
a[layer][lnum]=-;
if(lnum==layer)
dfs(layer-,,pos,nei+,n);
else dfs(layer,lnum+,pos,nei+,n);
} else if(layer!=n){
if(lnum<=layer){
if(a[layer+][lnum]==a[layer+][lnum+]){
a[layer][lnum]=;
if(lnum==layer)
dfs(layer-,,pos+,nei,n);
else dfs(layer,lnum+,pos+,nei,n);
} else {
a[layer][lnum]=-;
if(lnum==layer)
dfs(layer-,,pos,nei+,n);
else dfs(layer,lnum+,pos,nei+,n); }
} }
} int main()
{
/*for(int i=1;i<=24;i++){
m=(i*(i+1)/2);
if(m&1){
printf("0\n");
} else {
ans=0;
dfs(i,1,0,0,i);
printf("%d\n",ans);
}
}*/
while(scanf("%d",&n)!=EOF&&n){
printf("%d %d\n",n,res[n]);
}
return ;
}

hdu2510-符号三角形(dfs+打表)的更多相关文章

  1. hdu 2510 符号三角形 (DFS+打表)

    符号三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. 符号三角形(hdu 2510 搜索+打表)

    符号三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. 符号三角形——F

    F. 符号三角形 Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format:      Java class name: 符号 ...

  4. 符号三角形_hdu_2510(深搜).java

    http://acm.hdu.edu.cn/showproblem.php?pid=2510 Time Limit: 2000/1000 MS (Java/Others)    Memory Limi ...

  5. code vs 3376 符号三角形

    3376 符号三角形  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 如下图是由14个“+”和14个“-”组 ...

  6. OpenJudge 2990:符号三角形 解析报告

    2990:符号三角形 总时间限制:  1000ms       内存限制:  65536kB 描述 符号三角形的第1行有n个由“+”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“ ...

  7. 【a502】符号三角形问题

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 在一般情况下,符号三角形的第一行有n个符号.按照2个同号的下面是"+"号,2个异号的 ...

  8. HDU 2510 - 符号三角形

    DFS后打表 #include <iostream> using namespace std; ,,,,,,,,,,,,,,,,,,,,,,,,}; int main() { int n; ...

  9. DFS+打表

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...

  10. HDU 2586 How far away(dfs+邻接表)

    How far away [题目链接]How far away [题目类型]dfs+邻接表 &题意: 题目大意:一个村子里有n个房子,这n个房子用n-1条路连接起来,接下了有m次询问,每次询问 ...

随机推荐

  1. 使用 HTML5 的 IndexedDB API

    1. [代码]判断是否支持 IndexedDB     var indexedDB = window.indexedDB || window.webkitIndexedDB || window.moz ...

  2. IDEAL葵花宝典:java代码开发规范插件 Rainbow Brackets 插件

    前言: 最近在Jetbrains IDEA插件网站逛发现了 Rainbow Brackets这款插件,非常棒,推荐给大家. 可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能. 对增强写代码的有 ...

  3. python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fa ...

  4. Python 使用正则表达式验证密码必须包含大小写字母和数字

    校验密码是否合法的程序. 输入一个密码 1.长度5-10位 2.密码里面必须包含,大写字母.小写字母和数字 3.最多输入5次 ===================================== ...

  5. 如何改变cmd窗口大小

      按下Win+R(windows徽标和R一起按),再输入cmd. 输入mode ,查看当前屏幕的大小,来为后面准备(大概估计数值大小). 再输入mode con:cols=400 lines=400 ...

  6. jvm file.encoding 属性引起的storm/hbase乱码

    1. 问题 今天为storm程序添加了一个计算bolt,上线后正常,结果发现之前的另一个bolt在将中文插入到hbase中后查询出来乱码.其中字符串是以UTF-8编码的url加密串,然后我使用的URL ...

  7. Linux网络编程 gethostbyaddr()

    C语言函数 概述: 返回对应于给定地址的主机信息. #include <winsock.h> struct hostent FAR *PASCAL FAR gethostbyaddr(co ...

  8. AtCoder Beginner Contest 106 2018/08/18

    A - Garden Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement There is a ...

  9. cmder的下载和使用

    下载地址:http://cmder.net/ 设置环境变量,CMDER_HOME=cmder.exe所在目录,并在path中增加%CMDER_HOME%. 右击我的电脑->属性->(左侧) ...

  10. [JSOI 2018] 潜入行动

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5314 [算法] 考虑dp , 用f[i][j][0 / 1][0 / 1]表示以i为 ...