不会dp的蒟蒻写dfs了
--------------------------------
这道题完全可以用dfs做啊
--------------------------------
不剪枝60,剪枝100
---------------------------------
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int c[1001]; 6 int ans; 7 int n,ma,be; 8 int mm[100][10001]; 9 void dfs(int st,int now){ 10 if(now<0||now>ma) 11 return ; 12 if(mm[st][now]) 13 return ; 14 else 15 mm[st][now]=1; 16 if(st==n+1){ 17 ans=max(ans,now); 18 return ; 19 } 20 dfs(st+1,now+c[st]); 21 dfs(st+1,now-c[st]); 22 } 23 int main(){ 24 cin>>n>>be>>ma; 25 for(int i=1;i<=n;++i) 26 cin>>c[i]; 27 ans=-1; 28 dfs(1,be); 29 cout<<ans; 30 return 0; 31 }Ac