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

@ -13,10 +13,13 @@ struct Node {
int st[N];
int n;
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) {
res = max(res, sum);
if (sum > res) {
res = sum;
finalPath = path;
}
return;
}
@ -29,7 +32,7 @@ void dfs(int r, LL sum) { // u:本轮选择哪个靶子, r:剩余几次机会
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;
@ -53,8 +56,9 @@ int main() {
a[i].right = i + 1;
}
dfs(n, 0);
dfs(n, 0, "");
cout << res << endl;
cout << finalPath << endl;
return 0;
}
Loading…
Cancel
Save