分割等和子集 leetcode
DFs写出来了:
#include <iostream>
using namespace std;
#define N 201
int n;
int a[N];
void search(int leftsum, int rightsum, int cur) {
if(cur == n + 1) { if(leftsum == rightsum) { cout << "true\n"; exit(false); } return; }
search(leftsum + a[cur], rightsum, cur + 1);
search(leftsum, rightsum + a[cur], cur + 1);
}
int main(){
cin >> n;
for(int i = 1; i < n + 1; ++ i) { cin >> a[i]; }
search(0, 0, 1);
cout << "false\n";
}
请问dp思路是甚么?(给思路即可