码迷,mamicode.com
首页 > 其他好文 > 详细

2015.11.1 ---2015---长春

时间:2015-11-04 21:22:02      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

 

Too Rich

 

Count a * b

 

Play a game

 

Pipes selection

 

Rebuild

 

Almost Sorted Array

 

Dancing Stars on Me

 

Partial Tree

因为一棵树的每个节点的度数至少为 1

所以先给每个节点分配 1 个度数

然后剩下 n-2 的度数

dp[j] 表示已经用了 j 度数 的最优解

dp[j] = max(dp[j-i+1] + f[i]-f[1]) (i是枚举最终点的度数)

就相当于是在用度数更大的点去替换度数为 1 的点

技术分享
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6 
 7 const int maxn = 5005;
 8 int n;
 9 int dp[maxn],f[maxn];
10 
11 void solve(){
12     memset(dp,0,sizeof(dp));
13     dp[0] = f[1]*n;
14     for(int i = 2;i < n;i++){
15         for(int j = i-1;j <= n-2;j++){
16             dp[j] = max(dp[j],dp[j-i+1]+f[i]-f[1]);
17           //  printf("dp[%d] = %d\n",j,dp[j]);
18         }
19     }
20     printf("%d\n",dp[n-2]);
21 }
22 
23 int main(){
24     int T;
25     scanf("%d",&T);
26     while(T--){
27         scanf("%d",&n);
28         memset(f,0,sizeof(f));
29         for(int i = 1;i < n;i++) scanf("%d",&f[i]);
30         solve();
31     }
32     return 0;
33 }
View Code

 

 

Chess Puzzle

 

Chip Factory

 

Maximum Spanning Forest

 

House Building

 

Security Corporation

 

2015.11.1 ---2015---长春

标签:

原文地址:http://www.cnblogs.com/wuyuewoniu/p/4937294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!