还有一个问题,为何以下代码能得51分?蒟蒻感觉这反而是错的,竟然还能得一些分数。。我好菜啊
```c
min(a,b){return a<b?a:b;}
n,a[65],mx,sum,len[51];
void dfs(k,t,mx,s) { //k not done, this left t, smaller than mx, s is the length of each
if(t==0) {dfs(k-1,s,s,s);return;}
if(k==0) exit(printf("%d",s)&0);
mx=min(t,mx);
while(mx&&!len[mx]) --mx;
for(int g=mx;g;--g){
if(len[g]) --len[g],dfs(k,t-g,mx,s),++len[g];
if(g==t||t==s) break;
}
}
main(){
scanf("%d",&n);
for(int i=0;i<n;++i)scanf("%d",a+i),mx=mx>a[i]?mx:a[i],sum+=a[i],++len[a[i]];
for(int i=mx;i<=sum/2;++i){
if(sum%i==0) dfs(sum/i,0,mx,i);
}
printf("%d",sum);
}
```
by cat_lover1 @ 2024-01-17 09:47:19
终于A了.本贴结
by cat_lover1 @ 2024-01-17 10:01:28