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;
    }
  • 相关阅读:
    SWT中如何居中显示?
    项目一 默认构造函数和带参数的构造函数
    解决ubuntu中java1.6显示中文乱码问题
    网络程序为什么要处理SIGPIPE
    SQL 数据类型大全
    poj1275 差分约束
    Oracle分组
    Android利用ViewPager实现滑动广告板
    扩展spring mvc的拦截器,实现AOP的环绕增加效果
    [Ext.Net]GridPanel之存储过程分页Sql版本
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/6071440.html
Copyright © 2011-2022 走看看