【hdu5534】【2015ACM/ICPC亚洲区长春站】Partial Tree 题意&题解&代码

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=5534

题意:

构造一棵有n个节点的数,f[i]表示度数(入度+出度)为i的节点的点权,给出所有的f[i],问这棵树最大点权。

题解:

一道dp题,思维很巧妙

一共有n个点则总度数为2×(n-1),首先每个点至少也要一度则将这确定的一度先分配到每个点上,接下来还剩下n-2度没有分配,因为度数是任意分配的,接下来我们可以把问题看做将n-2度分配任意多个n-2度,n-3度,n-4度…………1度使得分配完后权值最大,这样看来,这不就是个完全背包么,果然我dp学的还是差。

代码:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
int n,T,f[2020],dp[4050];
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for (int i=1;i<n;i++)
        {
            scanf("%d",&f[i]);
            dp[i]=-1;
        }
        dp[0]=f[1]*n;
        int now=f[1];
        for (int i=1;i<n;i++)
        f[i]=f[i]-now;
        for (int i=1;i<n;i++)
        {
            for (int j=0;j<=n-2;j++)
            if (j-i>=0)
            dp[j]=max(dp[j],dp[j-i]+f[i+1]);
        }
        cout<<dp[n-2]<<endl;
    }
}
时间: 2024-10-16 09:37:17

【hdu5534】【2015ACM/ICPC亚洲区长春站】Partial Tree 题意&题解&代码的相关文章

2015ACM/ICPC亚洲区长春站 G hdu 5534 Partial Tree

Partial Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 228    Accepted Submission(s): 138 Problem Description In mathematics, and more specifically in graph theory, a tree is an undirect

2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building

House Building Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 145    Accepted Submission(s): 123 Problem Description Have you ever played the video game Minecraft? This game has been one of t

2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory

Chip Factory Time Limit: 18000/9000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 368    Accepted Submission(s): 202 Problem Description John is a manager of a CPU chip factory, the factory produces lots of chips

2015ACM/ICPC亚洲区长春站 B hdu 5528 Count a * b

Count a * b Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 211    Accepted Submission(s): 116 Problem Description Marry likes to count the number of ways to choose two non-negative integers a

2015ACM/ICPC亚洲区长春站 A hdu 5527 Too Rich

Too Rich Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 245    Accepted Submission(s): 76 Problem Description You are a rich person, and you think your wallet is too heavy and full now. So yo

2015ACM/ICPC亚洲区长春站 G hdu 5533 Dancing Stars on Me

Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 186    Accepted Submission(s): 124 Problem Description The sky was brushed clean by the wind and the stars were cold in a bl

2015ACM/ICPC亚洲区长春站 F hdu 5533 Almost Sorted Array

Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 447    Accepted Submission(s): 201 Problem Description We are all familiar with sorting algorithms: quick sort, merge sort,

2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild

Rebuild Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 446    Accepted Submission(s): 113 Problem Description Archaeologists find ruins of Ancient ACM Civilization, and they want to rebuild i

【hdu5538】【2015ACM/ICPC亚洲区长春站 】House Building 题意&题解&代码

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5538 题意: 给你积木图的俯视图,输入数据表示(i,j)位置放了一个高度为h[i][j]的积木,求表面积(不算下表面!!!). 题解: 水题一个,像我这样的蒟蒻都能快速想到题解...具体看代码实现就懂了. 代码: #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h>