最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 搭配购买(buy)

C++ 少儿编程 1066浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

【题目描述】

Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有$n$朵云,云朵被编号为$1,2,…,n$,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。

但是Joe的钱有限,所以他希望买的价值越多越好。

【输入】

第1行$n,m,w$,表示$n$朵云,$m$个搭配,Joe有$w$的钱。

第2~n+1行,每行$c_i$,$d_i$表示$i$朵云的价钱和价值。

第n+2~n+1+m行,每行$u_i$,$v_i$,表示买$u_i$就必须买$v_i$,同理,如果买$v_i$就必须买$u_i$。

【输出】

一行,表示可以获得的最大价值。

【输入样例】

5 3 10
3 10
3 10
3 10
5 100
10 1
1 3
3 2
4 2

【输出样例】

1

【提示】

【数据范围】

30%的数据保证:$nle 100$;

50%的数据保证:$nle 1,000;mle100;wle1,000$;

100%的数据保证:$nle 10,000;0le mle 5000;wle 10,000$。

您必须 登录 才能发表评论!