贤鱼的刷题日常---2990:符号三角形

简介: 符号三角形详细题解

@TOC

题目详情

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

n=7时的1个符号三角形如下:

            • +
          • +
        • -
      • -
    • -
  • -

+
输入
每行1个正整数n<=24,n=0退出.
输出
n和符号三角形的个数.
样例输入
15
16
19
20
0
样例输出
15 1896
16 5160
19 32757
20 59984

AC代码(放心食用)

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
int n=1,cmd;
int a[404][404];
//0=+,1=-
void pd(){
    int s=0;
    for(int i=0;i<n;i++){
        s+=a[0][i];//首先将第一排单独拿出来算和
    }
    for(int i=1;i<n;i++)//从第二排开始
        for(int j=0;j<n-i;j++)//每次往下都会-1,所以n-i就可以完美处理
        {
            a[i][j]=(a[i-1][j]+a[i-1][j+1])%2; //这里是1+1和0+0都是0,所以只有异号才会为1
            s+=a[i][j];//记录总和
        }    
    if(s==n*(n+1)/2/2) {//(首项+末项)*项数/2,可以看看样例发现+-各一半所以在/2,如果s的值算出来和这个一样,那么这就是个符号三角形
        cmd++;
    }
}
void dfs(int x){
    if(x==n)//x代表第几排,当x等于n的时候,就该判断是不是一个成立的夫哈皮三角形
    {
        pd();
        return;
    }
    for(int i=0;i<2;i++){
        a[0][x]=i;//0代表+,1代表-,所以循环往后判断就好

        dfs(x+1);
    }
}
int main(){
    while(n!=0){
        cmd=0;
        cin>>n;
        if(n==0) break;
        if(n*(n+1)/2%2!=0)
            cout<<n<<" "<<0<<endl;//首先排除不可能的情况
        else{
            dfs(0);
            cout<<n<<" "<<cmd<<endl;
        }
    }
}

@^ _ ^@

相关文章
|
存储 安全 Java
SpringBoot搭建Spring Security 入门
SpringBoot搭建Spring Security 入门
351 0
|
8月前
|
存储 数据管理 大数据
数字化协作工具在酒店运营中的五大实践场景
**从“粗放管理”到“精细化运营”的转型** 酒店行业正从依赖经验和直觉的管理模式转向数据驱动的精细化运营。在线协同工具助力这一转型,通过集中化数据存储、多部门协作和大数据分析,实现科学决策、提升客户体验和运营效率。欧美酒店集团已率先采用此类工具,中国酒店业也需顺应这一趋势,利用本地化软件优化内部流程,满足客户需求,提升品牌价值。 (238字)
|
监控 算法 数据可视化
ERP系统中的生产调度与计划排程解析
【7月更文挑战第25天】 ERP系统中的生产调度与计划排程解析
632 1
|
IDE Java 开发工具
06. 【Java教程】Java 集成开发环境 - Eclipse
06. 【Java教程】Java 集成开发环境 - Eclipse
208 1
|
消息中间件 存储 负载均衡
分布式消息传递新时代:深入了解RabbitMQ_sharding插件的精髓【RabbitMQ 八】
分布式消息传递新时代:深入了解RabbitMQ_sharding插件的精髓【RabbitMQ 八】
320 0
|
监控 NoSQL Redis
【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法
【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法
107 0
|
数据采集 DataWorks 监控
DataWorks产品使用合集之可以使用API来访问数据吗
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
89 6
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的个性化餐饮场所推荐附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的个性化餐饮场所推荐附带文章源码部署视频讲解等
79 0