zoukankan      html  css  js  c++  java
  • NKOI 1469 通向自由的钥匙

    P1469通向自由的钥匙
    时间限制 : 10000 MS   空间限制 : 65536 KB
    问题描述

    通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接。但是每个房间里都有特别的保护魔法,在它的作用下,我无法通过这个房间,也无法取得其中的钥匙。虽然我可以通过消耗能量来破坏房间里的魔法,但是我的能量是有限的。那么,如果我最先站在1号房间(1号房间的保护魔法依然是有效的,也就是,如果不耗费能量,我无法通过1号房间,也无法取得房间中的钥匙),如果我拥有的能量为P,我最多能取得多少钥匙?

    输入格式

    第一行包含两个非负整数,第一个为N,第二个为P。
    接下来n行,按1~n的顺序描述了每个房间。第i+1行包含两个非负整数cost和keys,分别为第i件房取消魔法需要耗费的能量和房间内钥匙的数量。
    接下来n-1行,每行两个非负整数x,y,表示x号房间和y号是连通的。

    输出格式

    一行一个整数,表示取得钥匙的最大值。

    样例输入

    5 5
    1 2
    1 1
    1 1
    2 3
    3 4
    1 2
    1 3
    2 4
    2 5

    样例输出

    7

    提示

    对于20%的测试数据,有n<=20
    对于30%的测试数据,有n<=30
    对于所有测试数据,有p,n<=100, cost <= 32767, keys<= 32767

     1 // 网络原因 尚未评测 
     2 #include<iostream>
     3 #include<cstring>
     4 #include<cstdio>
     5 using namespace std;
     6 #define maxn 6005
     7 bool mark[maxn],s[maxn][maxn];
     8 int l[maxn],r[maxn],n,p,cost[maxn],key[maxn];
     9 int f[maxn][maxn];
    10 void dfs(int x){
    11     mark[x]=1;
    12     for(int i=1;i<=n;i++){
    13         if(!mark[i]&&s[x][i]){
    14             r[i]=l[x];
    15             l[x]=i;
    16             dfs(i);
    17         }
    18     }
    19 }
    20 void DP(int i){
    21     if(l[i])DP(i);
    22     if(r[i])DP(i);
    23     for(int j=0;j<=p;j++){
    24         f[i][j]=f[r[i]][j];
    25         for(int k=0;k<=j-cost[i];j++)
    26           f[i][j]=max(f[i][j],key[i]+f[l[i]][k]+f[r[i]][j-k-cost[i]]);
    27           // 分给左边k右边j-k-cost[i] 
    28     }
    29 }
    30 int main()
    31 {
    32     scanf("%d%d",&n,&p);
    33     for(int i=1;i<=n;i++)
    34       scanf("%d%d",&cost[i],&key[i]);
    35     for(int i=1,u,v;i<=n-1;i++){
    36         scanf("%d%d",&u,&v);
    37         s[u][v]=s[v][u]=true;
    38     }
    39     dfs(1);
    40     DP(1);
    41     printf("%d",f[1][p]);
    42     return 0;
    43 }
  • 相关阅读:
    [比赛|考试]9.21上午考试
    给花_Q
    [比赛|考试] 9.17下午考试
    [比赛|考试]nowcoder NOIP提高组组第二场
    图论
    生成函数
    P4197 Peaks
    3942: [Usaco2015 Feb]Censoring
    P2245 星际导航
    P3565 [POI2014]HOT-Hotels
  • 原文地址:https://www.cnblogs.com/suishiguang/p/6392396.html
Copyright © 2011-2022 走看看