main
黄海 1 year ago
parent 78a8d94870
commit 344c7914a3

@ -13,10 +13,13 @@ struct Node {
int st[N]; int st[N];
int n; int n;
LL res; LL res;
void dfs(int r, LL sum) { // u:本轮选择哪个靶子, r:剩余几次机会 sum:已经取得的累加和 string finalPath;
void dfs(int r, LL sum, string path) { // u:本轮选择哪个靶子, r:剩余几次机会 sum:已经取得的累加和
if (r == 0) { if (r == 0) {
res = max(res, sum); if (sum > res) {
res = sum;
finalPath = path;
}
return; return;
} }
@ -29,7 +32,7 @@ void dfs(int r, LL sum) { // u:本轮选择哪个靶子, r:剩余几次机会
a[R].left = L; a[R].left = L;
// 深搜 // 深搜
dfs(r - 1, sum + a[L].num * a[u].num * a[R].num); dfs(r - 1, sum + a[L].num * a[u].num * a[R].num, path + to_string(u));
// 回溯 // 回溯
a[L].right = u; a[L].right = u;
@ -53,8 +56,9 @@ int main() {
a[i].right = i + 1; a[i].right = i + 1;
} }
dfs(n, 0); dfs(n, 0, "");
cout << res << endl; cout << res << endl;
cout << finalPath << endl;
return 0; return 0;
} }
Loading…
Cancel
Save