zoukankan      html  css  js  c++  java
  • 符号三角形

    符号三角形

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 166 Accepted Submission(s): 99
     
    Problem Description
    符号三角形的 第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
     
     
    Source
    ECJTU 2008 Autumn Contest
     
    Recommend
    lcy
    /*
    暴力不要脸地打表
    */
    #include<bits/stdc++.h>
    using namespace std;
    int op(int x)
    {
        int m[25][25];
        memset(m,0,sizeof m);
        int cur=0;
        for(int i=0;i<pow(2.0,x);i++)
        {
            //cout<<"pow(2.0,x-1)="<<pow(2.0,x)<<endl;
            int n=i;
            int l=0,r=0;
            for(int j=0;j<x;j++)
            {
                m[x][j]=n%2;
                if(m[x][j]==1)
                    l++;
                else
                    r++;
                n/=2;
            }
            //for(int j=0;j<20;j++)
            //{
            //    cout<<m[x][i];
            //}
            //cout<<endl;
            for(int j=x-1;j>=1;j--)
            {
                for(int k=0;k<j;k++)
                {
                    m[j][k]=(m[j+1][k]^m[j+1][k+1]);
                    if(m[j][k]==1)
                        l++;
                    else
                        r++;
                }
            }
            if(l==r)
                cur++;
            //cout<<"l="<<l<<" r="<<r<<endl;
        }
        return cur;
    }
    int main()
    {
        //freopen("C:\Users\acer\Desktop\in.txt","r",stdin);
        int n;
        int a[25]={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};
        while(scanf("%d",&n)!=EOF&&n)
            printf("%d %d
    ",n,a[n]);
        return 0;
    }
  • 相关阅读:
    [pycharm]远程调试服务器项目
    [Linux]防火墙关闭与开启
    [Linux]安装pyenv
    [Linux]ubuntu安装基本流程
    [python]html格式转md格式
    [python]目录及文件操作
    [Linux]安装node.js
    Linux基础
    爬虫基础(3)
    爬虫基础(2)
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/6071440.html
Copyright © 2011-2022 走看看