#1997. kill

kill

题目描述

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

输入格式

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

输出格式

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

样例

输入样例

5 4 
1 2 
1 3 
1 4 
1 5

输出样例

0.800000

提示

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

对于 100%\red{100\%}的数据有 1\red{1≤}N\red{N ≤} 100000,0\red{10 0000,0≤}M\red{M ≤} 300000\red{30 0000,}数据有梯度