zoukankan      html  css  js  c++  java
  • JZOJ 3425. 能量获取

    题目

    Description

    “封印大典启动,请出Nescafe魂珠!”随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上。封印台是一个树形的结构,魂珠放置的位置就是根节点(编号为0)。还有n个其他节点(编号1-n)上放置着封印石,编号为i的封印石需要从魂珠上获取Ei的能量。能量只能沿着树边从魂珠传向封印石,每条边有一个能够传递的能量上限Wi,魂珠的能量是无穷大的。作为封印开始前的准备工作,请你求出最多能满足多少颗封印台的能量需求?

    注意:能量可以经过一个节点,不满足它的需求而传向下一个节点。每条边仅能传递一次能量。
     

    Input

    第一行一个整数n,表示除根节点之外的其他节点的数量。

    接下来n行,第i+1行有三个整数Fi、Ei、Wi,分别表示i号节点的父节点、i号节点上封印石的能量需求、连接节点i与Fi的边最多能传递多少能量。

    Output

    最多能满足多少颗封印石的能量需求。
     

    Sample Input


    0 3 2
    0 100 100
    1 1 1
    2 75 80

    Sample Output

    2
     

    Data Constraint

    对于100%的数据,满足1<=n<=1000,0<=Fi<=n,0<=Ei,Wi<=100

     

    分析

     

    • 树形Dp
    • 贪心都行

    代码

     1 #include<iostream>
     2 using namespace std;
     3 struct sb
     4 {
     5     int to,nx,w;
     6 }g[10001];
     7 int cnt,list[10001];
     8 void add(int x,int y,int w)
     9 {
    10     g[++cnt].to=y; g[cnt].nx=list[x]; g[cnt].w=w; list[x]=cnt;
    11 }
    12 long long ans;
    13 int f[1001][1001],t[1001];
    14 void dfs(int x,int y)
    15 {
    16     for (int i=list[x];i;i=g[i].nx) 
    17         dfs(g[i].to,min(y,g[i].w));
    18     if (!x)
    19     {
    20         for (int i=list[x];i;i=g[i].nx)
    21           ans+=f[g[i].to][g[i].w];
    22         return;
    23     }
    24     for (int i=t[x];i<=y;i++)
    25        f[x][i]=1;
    26     for (int i=list[x];i;i=g[i].nx)
    27         for (int j=y;j+1;j--)
    28           for (int k=0;k<=min(j,g[i].w);k++) 
    29             f[x][j]=max(f[x][j],f[x][j-k]+f[g[i].to][k]);
    30 }
    31 int main ()
    32 {
    33     int n;
    34     cin>>n;
    35     for (int i=1,x,y;i<=n;i++)
    36     {
    37         cin>>x>>t[i]>>y;
    38         add(x,i,y);
    39     }
    40     dfs(0,21321937);
    41     cout<<ans;
    42 }
  • 相关阅读:
    pip安装pyinstaller失败的解决方法
    导药仪端子接线方式
    聊聊信号的回勾和过冲(转)
    玩不好触发,就不算会用示波器
    TI DS125BR401A 官方DEMO板鉴赏+学习+分析
    导药仪射频卡连接线制作方式
    解决ISE14.7在win10中不稳定的问题
    VS2013编译VTK7.1.1
    QT5.8.0与VS2013环境配置
    The Architecture of Open Source Applications---VTK
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/11375116.html
Copyright © 2011-2022 走看看