NC19810(kingdom )

感受

思路

图片说明











#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = 8e3 + 10;
ll ans[maxn], dp[maxn][maxn];
/**ans[i]表示i个节点构成的树最大贡献*/
/**dp[i][j]表示i个节点构成的森林中, |任意一棵树| <= j的最大贡献*/
int n;
int main(){
    scanf("%d", &n);
    for(int i = 1; i <= n; i++){
        for(int j = 1; j < i; j++){
            ans[i] = max(ans[i], dp[i - j - 1][j] + ans[j] + i - j - 1);
        }
        for(int j = 1; j <= n; j++){
            dp[i][j] = dp[i][j - 1];
            if(i >= j){
                dp[i][j] = max(dp[i][j], dp[i - j][j] + ans[j]);
            }
        }
    }
    printf("%lld\n", ans[n]);
    return 0;
}
全部评论

相关推荐

12-22 19:38
已编辑
黄冈师范学院 后端
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
不要开盒我:腾讯不分日常和暑期
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务