1 条题解
-
-1
C++ :
#include <iostream> #include <fstream> #define maxn 109 #include <cstring> using namespace std; int n,s1,s0,q; int b[maxn]; void xxx(int k); void xx(int a); int main() { scanf("%d",&n); memset(b,-1,sizeof(b)); xxx(1); printf("%d\n",q); xx(1); return 0; } void xxx(int k) { if(k==2*n+1){q++; return; } for(int i=0;i<=1;i++){ b[k]=i; if(b[k]==0){s0++;} if(b[k]==1){s1++;} if(s0>=s1 && s0<=n){xxx(k+1);} if(b[k]==0){s0--;} if(b[k]==1){s1--;} } } void xx(int a) { if(a==2*n+1){ for(int i=1;i<=2*n;i++){ printf("%d ",b[i]); }printf("\n");return; } for(int i=0;i<=1;i++){ b[a]=i; if(b[a]==0){s0++;} if(b[a]==1){s1++;} if(s0>=s1 && s0<=n){xx(a+1);} if(b[a]==0){s0--;} if(b[a]==1){s1--;} } }
- 1
信息
- ID
- 92
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 87
- 已通过
- 49
- 上传者