jzoj 5661. 【GDOI2018Day1模拟4.17】药香沁鼻

原创 2018年04月17日 20:43:37

题目大意:

这里写图片描述

思路:

因为选y一定要先选x,所以这是一题0.1分数规划的树形依赖背包。(比较懒)
先用dfs把树转化成序列,如果cnt>W[I]那么就是可以装下的那么当先点的背包就是从他的子节点加上自己价值的背包或者兄弟节点的背包加上自己。如果cnt>W[I]就直接把他和他的兄弟背包合并。最后求出答案就好了。

程序:

#include<cstdio>
#include<iostream>
#include<algorithm>
#define N 5005
using namespace std;
int f[N][N*2],w[N],v[N],last[N],a[N],c[N],t[N];
int n,p,cnt,fa,s,ans;
struct data{int next,to;}e[N*2];
void add(int x,int y){
    e[++cnt].next=last[x]; e[cnt].to=y; last[x]=cnt;
    e[++cnt].next=last[y]; e[cnt].to=x; last[y]=cnt;
} 


void dfs(int x,int fa){
    s++;
    a[x]=1;
    t[s]=x;
    for (int i=last[x];i;i=e[i].next)
    if (fa!=e[i].to)  {
        dfs(e[i].to,x);
        a[x]+=a[e[i].to];
    }
}

void dp(){
    for (int i=n;i;i--){
        int x=t[i];
        for (int j=0;j<=p;j++){
            if (j<w[x]) f[i][j]=f[i+a[x]][j];
            else f[i][j]=max(f[i+1][j-w[x]]+v[x],f[i+a[x]][j]);
        }
    }
}

int main(){
    freopen("medicine.in","r",stdin);
    freopen("medicine.out","w",stdout);
    scanf("%d%d",&n,&p);
    for (int i=1;i<=n;i++){
        scanf("%d%d%d",&w[i],&fa,&v[i]);
        if (i!=1)add(i,fa);
    }
    s=0;
    dfs(1,0);
    dp();
    printf("%d",f[1][p]);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq872425710/article/details/79980497

jzoj 5661. 【GDOI2018Day1模拟4.17】药香沁鼻 dp

DescriptionInputOutputSample Input6 9 1 1 1 1 1 100 8 1 1 1 3 6 2 3 1000 4 1 4Sample Output105...
  • liangzihao1
  • liangzihao1
  • 2018-04-17 14:41:00
  • 15

【GDOI2018Day1模拟4.17】药香沁鼻

题目 分析 首先求出这棵树的dfs序,设lx表示以x为根的子树中的dfs序最小值(即点x的dfs序),设rx表示以x为根的子树中的dfs序最大值。 然后按照dfs序枚举点,每个点维护一个背包...
  • A_loud_name
  • A_loud_name
  • 2018-04-17 18:54:57
  • 7

jzoj5661 [GDOI2018Day1模拟4.17]药香沁鼻

Description 给定一棵树,每个节点有价值和体积。已知选择一个节点需要满足它的父亲节点也被选择,根据给出的背包容量求能获得的最大价值 Solution 题目是图片懒得放惹 这种...
  • jpwang8
  • jpwang8
  • 2018-04-17 15:52:21
  • 6

jzoj 5662. 【GDOI2018Day1模拟4.17】尺树寸泓

题目大意: 思路: 平衡树很简单了,学过的大概多知道,推一推会发现,他的sum是和只有旋转点会变,mul所有的父亲都会变,在多次旋转后可能为一条链,那么时间复杂度就会爆炸。 这时我们可以...
  • qq872425710
  • qq872425710
  • 2018-04-17 21:00:12
  • 33

jzoj5662 [GDOI2018Day1模拟4.17]尺树寸泓

Description 给定一棵splay,每个节点都有一个权值,节点x的价值为以x为根的子树中所有节点的权值和 分别有一下三种操作: 0 x:将x节点左旋 1 x:将x节点右旋 2 x...
  • jpwang8
  • jpwang8
  • 2018-04-17 21:03:49
  • 7

朝阳过敏性鼻炎如何调理 首选祖传鼻炎药

治疗鼻炎专家推荐使用中医鼻窍康祖传鼻炎药,纯中药配制而成,外用更安全,可以避免口服对身体的影响,还可以避免打针、吃药、手术,尽量避免手术带来的后遗症,因为人没有器官再生长能力,请谨慎!http://w...
  • qq_24543057
  • qq_24543057
  • 2014-12-16 19:56:50
  • 516

jzoj5663 [GDOI2018Day1模拟4.17]呼吸决定

Description 这次的题意出奇短 求∑i=1nμ(i)im∑i=1nμ(i)im\sum_{i=1}^{n}\mu(i)i^m 已知1≤n≤1091≤n≤1091\leq n\leq...
  • jpwang8
  • jpwang8
  • 2018-04-18 08:12:14
  • 1

我的学生网页作品---药满香.rar

  • 2013年06月05日 11:18
  • 301KB
  • 下载

JZOJ 7.10B组第一题 可见点数

题目: ZPS经过长期的努力争取,终于成为了0901班的领操员,他要带领0901班参加广播操比赛。现在0901班的队伍可以看作是一个n*n的点阵,每个人都站在格点上。现在作为领操员的ZPS站(0,0...
  • qq_34510600
  • qq_34510600
  • 2017-07-10 20:17:22
  • 67

药动学模型的Matlab模拟

  • 2011年03月14日 15:51
  • 156KB
  • 下载
收藏助手
不良信息举报
您举报文章:jzoj 5661. 【GDOI2018Day1模拟4.17】药香沁鼻
举报原因:
原因补充:

(最多只允许输入30个字)