求助搜索题

P1120 小木棍

还有一个问题,为何以下代码能得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


|