记忆化搜索

取数游戏2

https://ac.nowcoder.com/acm/problem/14701

并没有很快的想到转移方程,所以就直接搜索吧。(写起来超短的)

int dfs(int cur, int l) {
    if (cur == n + 1) return 0;
    if (memo[cur][l] != 0) return memo[cur][l];
    return memo[cur][l] = max(dfs(cur + 1, l) + a[n - cur + l] * b[cur], dfs(cur + 1, l + 1) + a[l] * b[cur]);
}
void solve() {
    memset(memo, 0, sizeof memo);
    cin >> n;
    rep(i, 1, n) cin >> a[i];
    rep(i, 1, n) cin >> b[i];
    cout << dfs(1, 1) << endl;
}
int main() {
    int T; cin >> T;
    while (T--) {
        solve();
    }
}
全部评论

相关推荐

erer__:我也挺晚的,10月23号才开始投递。然后11月12号才有第一次面试。日常实习挺看运气的,要看有没有岗位。感觉到后面可能岗位会更少了,不过多投吧。加油
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务