int main() { int value_nu,value[MAX],num; int guocheng[MAX]; scanf("%d%d",&value_nu,&num); int opt[value_nu][num+1]; int i,j,k; for(i=0;i<value_nu;i++) for(j=1;j<num+1;j++) opt[i][j]=0; for(i=0;i<value_nu;i++) opt[i][0]=1; for(i=0;i<value_nu;i++) scanf("%d",value+i); for(i=0,j=num;j>=1;j--) for(k=1;value[i]*k<=j;k++) opt[i][j]+=opt[i][j-value[i]*k]; for(i=1;i<value_nu;i++) for(j=num;j>=1;j--) { opt[i][j]+=opt[i-1][j]; for(k=1;value[i]*k<=j;k++) opt[i][j]+=opt[i-1][j-value[i]*k]; } printf("%d\n",opt[value_nu-1][num]); bianli(value_nu-1,num,guocheng,value,value_nu); }
int main () { tree *t; t=inittree(); bianli(t); return 0; }
int bianli(int ceng,int num_last,int* guocheng,int *value,int value_nu) { int k; if(ceng<0)return 0; for(k=0;k*value[ceng]<=num_last;k++){ guocheng[ceng]=k; if(k*value[ceng]==num_last) print(ceng,value,guocheng,value_nu); else bianli(ceng-1,num_last-k*value[ceng],guocheng,value,value_nu); } return 0; }
int main(int argc, const char *argv[]) { struct stu *op,*head; head = (struct stu *)malloc(sizeof(struct stu)); head->id = 1; head->chinese = 97; strcpy(head->name,"zhang"); op=creat(head,2,60,"shazi"); op=creat(op,3,60,"bendan"); op=creat(op,4,70,"danben"); op=creat(op,5,80,"haha"); op=creat(op,6,90,"haha1"); op=creat(op,7,100,"huakai"); //head = fr(head,1); //insert_next(head,3,8,59,"ladeng"); head = insert_b(head,20,9,58,"ladeng"); bianli(head); return 0; }