题目名称 860. 聪明的推销员
输入输出 salenet.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 12
题目来源 Gravatarcqw 于2012-07-09加入
开放分组 全部用户
提交状态
分类标签
连通性 图论 贪心
分享题解
通过:47, 提交:125, 通过率:37.6%
GravatarKulliu 100 0.000 s 0.00 MiB C++
Gravatar521 100 0.000 s 0.00 MiB C++
GravatarTARDIS 100 0.000 s 0.00 MiB C++
Gravatar数声风笛ovo 100 0.000 s 0.00 MiB C++
Gravatarjhs 100 0.002 s 0.95 MiB C++
Gravatarliu_runda 100 0.012 s 0.45 MiB C++
Gravatarbsmsnd 100 0.014 s 0.42 MiB C++
GravatarCSU_Turkey 100 0.015 s 0.46 MiB C++
Gravatarchenge 100 0.016 s 0.31 MiB Pascal
GravatarCSU_Turkey 100 0.016 s 0.46 MiB C++
本题关联比赛
20120709
聪明的工作员
关于 聪明的推销员 的近10条评论(全部评论)
同1166.间谍网络
Gravatarliu_runda
2016-05-20 10:36 3楼
p次DFS处理出来每个潜在客户可以到达哪些点,然后尝试用费时较小的代替较大的,若必须选这个客户再用它代替所有可达的
比赛的时候心态太浮躁了……然后就写跪了……
Gravatarcstdio
2013-07-09 13:30 2楼
用floodfill判断连通,利用连通性判断包含关系,显然被包含的点不会被选到,对于互相连通的点(在同一强连通分量里),判断COST选取最小即可。
Gravatarzhangchi
2012-07-09 15:56 1楼

860. 聪明的推销员

★★☆   输入文件:salenet.in   输出文件:salenet.out   简单对比
时间限制:1 s   内存限制:128 MiB

题目描述

某商品推销员到某小区推销产品,产品推销除了商品质量好之外,还需要客户能影响和带动身边信赖他的人也购买,如果A购买了产品,那么信赖A的B就有可能也购买,那么信赖B的C就也可能成为潜在客户,依据这种信赖关系,就可能构成一个庞大的潜在客户网。聪明的推销员经过细心调查整理了这个小区里N个人的信赖关系,并且用1~N给这N个人编号。另外,这N个人中有P个潜在客户可能会被推销员直接说服购买产品,细心的推销员还估算了说服每个人具体需要花费的时间,那么请你帮推销员计算一下他最少需要花费多长时间来建立起这N个人的潜在客户网?如果不能把这N个人全部纳入潜在客户网,输出不能被纳入网络的人的编号。注意,信赖关系不一定是相互的啊!

【输人格式】

输入文件第一行只有一个整数n(n<=3000)。

    第二行是整数p。表示能被说服的人数,1pn

    接下来的p行,每行有两个整数,第一个数是一个能被说服的人的编号,第二个数表示他被说服需要花费的时间。这个数不超过20000个时间单位。

紧跟着一行只有一个整数r1r8000。然后r行,每行两个正整数,表示数对(A, B),B信赖A

【输出格式】

如果可以把N个人全部纳入潜在客户网,第一行输出YES,并在第二行输出所需要花费的最少说服时间。否则输出NO,并在第二行输出不能纳入网络的人编号中,编号最小的。

【输入样例】

Example1:

3

2

1 10

2 100

2

1 3

2 3

 

Example2:

4

2

1 100

4 200

2

1 2

3 4

【输样例】

Example1:

YES

110

Example2:

NO

3

数据规模

对于30%的输入数据有n<=10。

对于100%的输入数据有n<=3000。