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;
    }
  • 相关阅读:
    判断php变量是否定义,是否为空
    HTTP Client 编写
    推荐《冒号课堂——编程范式与OOP思想》
    一些免费的HTML编辑器
    如何判断mysql中数据表中两个列之间的相同记录和不同记录
    PostgreSQL 8.4, SQL Server 2008, MySQL 5.1比较
    JDBC纵览
    使用jdbc连接sql数据库
    关于PHP中变量的判定
    如何判断数据库中是否存在一个数据表
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/6071440.html
Copyright © 2011-2022 走看看