ZQUOJ1923符号三角形问题
来源:互联网 发布:网络舆情分析师报名 编辑:程序博客网 时间:2024/06/05 10:07
Description
符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的"+"和"-"的个数相同。
在一般情况下,符号三角形的第一行有n个符号。如图所示是由14个"+"号和14个"-"号组成的符号三角形。两个同号下面都是"+",两个异号下面都是"-"号。
+ + - + - + +
+ - - - - +
- + + + -
- + + -
- + -
- -
+
Input
输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的只有一行n ( n ≤ 25 )。
Output
对应每个测试样例输出一行,格式为"Case #: M",其中'#'表示第几个测试样例(从1开始计),M为不同的符号三角形个数。
Sample Input
2
2
3
Sample Output
Case 1: 0
Case 2: 4
#include<stdio.h>int a[27][27];int k,n,sum,y;void t(int m){ if(y>k||m*(m-1)/2-y>k) return ; if(m>n) { sum++; return ; } a[1][m]=0; int i=y,j; for(j=2;j<=m;j++) { a[j][m-j+1]=a[j-1][m-j+1]^a[j-1][m-j+2]; y+=a[j][m-j+1]; } t(m+1); a[1][m]=1; y=i+1; for(j=2;j<=m;j++) { a[j][m-j+1]=a[j-1][m-j+1]^a[j-1][m-j+2]; y+=a[j][m-j+1]; } t(m+1);}int main(){ int m,i,j; scanf("%d",&m); for(j=1;j<=m;j++) { scanf("%d",&n); k=n*(n+1)/2; if(k&1) { printf("Case %d: 0\n",j); continue; } sum=0; y=0; k/=2; t(1); printf("Case %d: %d\n",j,sum); }return 0;}
0 0
- ZQUOJ1923符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 算法 符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 【a502】符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 符号三角形问题
- 符号三角形问题C++代码
- 符号三角形问题 回溯法
- 回溯之符号三角形问题
- 符号三角形问题(回溯)
- 符号三角形问题(回溯)
- 符号三角形问题-回溯法
- iOS 开发 多线程详解
- filter和拦截器的区别和执行顺序
- 最新黑客攻防实战从入门到精通(第二版)_学习笔记(一)
- junit面向测试编程
- ATS缓存相关话题
- ZQUOJ1923符号三角形问题
- 测试
- ln 用法,知识(软链接和硬链接)
- HTML 代码复用——gulp-file-include
- struts2 excel导入
- java中怎样将JSON字符串还原成MAP
- Paint House II
- Mysql my.cnf 优化
- CollapsingToolbarLayout用法总结