void dfs(int num,int x,int sum){ //剪枝 if(sum+f[num][len-1]<n || sum>n) return; if(sum+f[num][len-1] == n) { ans=min(ans,x); return; } for(int i=num;i<len;++i){ dfs(i+1,x+1,sum+f[num][i]); } }
运用贪心的思路剪枝,每次划分加号一定是小于不划分加号的如果不划分还大于就可以return