符号三角形
符号三角形 |
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",n,a[n]); return 0; }
我每天都在努力,只是想证明我是认真的活着.