北师海附Online Judge
首页
问题
来源/分类
竞赛&作业
状态
排名
常见问答
登录
注册
2248: 电视网络
内存限制:128 MB
时间限制:1.000 S
标准输入输出
题目类型:传统
评测方式:文本比较
上传者:
提交:22
通过:4
提交
提交记录
统计
题目描述
电视网络计划广播一个重要的足球比赛。他们的网络传输关系可以认为是一棵树。树的根即为广播比赛的电视台,叶子节点表示网络用户,其他节点表示中转站。
从一个节点向另一个节点传输广播的费用是给定的。总的传输费用为所有传输广播的边的费用之和。
每个用户愿意支付一定的报酬来观看足球比赛,电视网络决定是否给其提供广播信号。
写一个程序计算在电视网络不亏本的前提下(即看到比赛的用户的报酬之和-总的传输费用>=0),最多可以让多少人看到足球比赛。
输入格式
第一行包含两个整数N,M(2<=N<=3000,1<=M<=N-1)分别表示总的节点数和叶子节点数。
根节点的编号为1,叶子节点的编号为N-M+1~N,其他节点的编号为2~N-M。
接下来N-M行,每行按照如下格式输入:K A1 C1 A2 C2……AK CK
表示一个非叶子节点(中转站或电视台)能向K个节点(中转站或用户)传输广播,每一个数对A,C分别表示接收的节点编号和传输的费用。
最后一行包含M个整数表示每个人愿意支付的报酬。
输出格式
一行一个整数,表示在电视网络不亏本的前提下最多可以让多少人看到足球比赛。
输入样例
复制
9 6 3 2 2 3 2 9 3 2 4 2 5 2 3 6 2 7 2 8 2 4 3 3 3 1 1
输出样例
复制
5