第七个测试点过不去 答案应该是一样的,还请大神帮忙!

P2089 烤鸡

希望更丰富的展现?使用Markdown ```c #include<stdio.h> int num=0; int n; int r[9]; int kind[600000]; int save() { int i; int u=0; int s=0; for(i=0; i<=9; i++) { s+=r[i]; if(r[i]==0) return 0; } if(s==n) { for(i=10num; i<=10num+9; i++) kind[i]=r[u++]; num++; return 1; } } int dg(int qua,int m) { if(qua<0) return 0; if(qua==0) return save(); int i; for(i=1; i<=3; i++) { r[m]=i; dg(qua-i,m+1); } } int main() { int i; scanf("%d",&n); if(n>30) { printf("0"); return 0; } dg(n,0); if(num==0) { printf("0"); return 0; } printf("%d\n",num); for(i=0; i<=10num-1; i++){ printf("%d ",kind[i]); if((i+1)%10==0&&i!=10num-1) printf("\n"); } return 0; } ```
by dead_gun @ 2019-03-26 21:31:21


```c #include<stdio.h> int num=0; int n; int r[9]; int kind[600000]; int save(){ int i; int u=0; int s=0; for(i=0;i<=9;i++){ s+=r[i]; if(r[i]==0) return 0; } if(s==n){ for(i=10*num;i<=10*num+9;i++) kind[i]=r[u++]; num++; return 1; } } int dg(int qua,int m){ if(qua<0) return 0; if(qua==0) return save(); int i; for(i=1;i<=3;i++){ r[m]=i; dg(qua-i,m+1); } } int main(){ int i; scanf("%d",&n); if(n>30){ printf("0"); return 0; } dg(n,0); if(num==0){ printf("0"); return 0; } printf("%d\n",num); for(i=0;i<=10*num-1;i++){ printf("%d ",kind[i]); if((i+1)%10==0&&i!=10*num-1) printf("\n"); } return 0; } ```
by 桑仓先生 @ 2019-03-26 21:45:08


|