【bzoj2438】[中山市选2011]杀人游戏

2014年12月20日2,8473

Description

一位冷血的杀手潜入 Na-wiat,并假装成平民。警察希望能在 N 个人里面,
查出谁是杀手。
警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他
认识的人, 谁是杀手, 谁是平民。 假如查证的对象是杀手, 杀手将会把警察干掉。
现在警察掌握了每一个人认识谁。
每一个人都有可能是杀手,可看作他们是杀手的概率是相同的。
问:根据最优的情况,保证警察自身安全并知道谁是杀手的概率最大是多
少?

Input

第一行有两个整数 N,M。
接下来有 M 行,每行两个整数 x,y,表示 x 认识 y(y 不一定认识 x,例如胡锦涛同志) 。

Output

仅包含一行一个实数,保留小数点后面 6 位,表示最大概率。

Sample Input

5 4
1 2
1 3
1 4
1 5

Sample Output

0.800000

HINT

警察只需要查证 1。假如1是杀手,警察就会被杀。假如 1不是杀手,他会告诉警
察 2,3,4,5 谁是杀手。而 1 是杀手的概率是 0.2,所以能知道谁是杀手但没被杀的概
率是0.8。

对于 100%的数据有 1≤N ≤  10 0000,0≤M ≤  30 0000

题解

缩点后,ans=入度为0的连通块个数

倘若存在只有一个点的连通块,它无出边或出边指向的点均能被其它点到达则ans–

 

 

  • 王天懿2014年12月29日 下午6:25 回复

    写挂了- – judge那里应该用第二张图- – 代码里用的第一张- –

    #1  
    • hzwer2014年12月29日 下午6:52 回复
      admin

      233 我记得我当时改了啊。。。这题数据很弱

      #11
      • Newnode2014年12月29日 下午10:29 回复

        数据被加强了,然后是rejudge。。。

        #12