1 条题解
-
0
C :
#include<stdio.h> int n,b; void fun(int a[15],int m,int h,int d) { if(m < 14 && h < 9 && d < 5){ a[m] = 1; fun(a,m +1,h+1,d); a[m] = 2; fun(a,m +1,h,d+1); } else { b = 2; if( h == 9) for(int i = m;i < 14; i++) a[i] = 2; else if(d == 5) for(int i = m;i < 14; i++) a[i] = 1; a[14] = 1; for(int i = 0;i < 14; i++){ if(a[i] ==1) b-= a[i]; else b *= 2; } if(b == 1) n++; } } int main() { int a[15],m = 0; int h = 0,d = 0; fun(a,m,h,d); printf("%d",n); return 0; }
C++ :
#include<iostream> #include<algorithm> using namespace std; int main() { int p[15]={1,1,1,1,1,2,2,2,2,2,2,2,2,2,2};//1是店,2是花 int sum,cnt=0; do { sum=2; for(int i=0;i<15;i++) if(p[i]==1) sum<<=1; else if(p[i]==2) sum--; if(sum==0) cnt++; } while(next_permutation(p,p+14));//因为最后一次遇到的肯定是花,所以只排前14个,不排最后一个数 cout<<cnt; return 0; }
- 1
信息
- ID
- 813
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者