#1467. Dota系列——幽鬼

Dota系列——幽鬼

Description

  诞生于远古世界早期的黑暗,Mercurial代表着那些死去多时的灵魂的狂怒和怨恨。和死灵与恶灵一样,它神出鬼没,并以不寻常的热情纠缠那些还活着的生命,而且完全不受自然法则的约束。它还可以利用它垂死友军的生命能量去摧毁天灾军团的敌人。一切都为了冰封王座的荣耀。

    折射作为Mercurial一个非常核心的技能,他能部分降低幽鬼所受到的伤害,并将伤害折射给她周围1000范围内的敌方英雄。敌方英雄所受伤害的多少取决于与幽鬼的距离。距离300以内将会承受折射的全额伤害,距离超过3001000以内伤害将逐渐递减。

    现在大pan在打dota的某变态版本时碰到了一个变态情况,现在有NMercurial扎堆的站在一小块区域内,任意两个Mercurial都是敌人,会把伤害安装按照一定百分比弹射给周围的其他Mercurial,现在,天降一道闪电,对其每个人造成100点伤害,然后,幽鬼们开始互相弹射伤害了。这是一个无止境的弹射,现在的问题是假设幽鬼的血量是无穷,问,经过M次反弹后,每个幽鬼受到的伤害是多少。

Input Format

输入包含多组数据,每组数据先输入一个正整数n<0<n<=10),表示有n个幽鬼站在那里,接着是nn列的一个方阵A,第ij列的Aij表示,第iMercurial受到伤害时,反弹给第jMercurial伤害的比率大小。

Output Format

输出每个Mercurial10次伤害反弹结束时各自受到的伤害,结果保留2位小数,每两个Mercurial所受伤害值间用空格隔开。

4
0.4 0.2 0.1 0.3
0.1 0.2 0.3 0.4
0.4 0.3 0.2 0.1
0.1 0.1 0.1 0.7
82.56 66.80 59.29 191.36

Hint

最开始的时候,每个Mercurial需要承受100点伤害(第0次),但是,Mercurial会反弹伤害,第一个幽鬼收到的伤害为100*0.4+100*0.1+100*0.4+100*0.1=100点。
其他的分别为80=100*0.2+100*0.2+100*0.3+100*0.1
            70=100*0.1+100*0.3+100*0.2+100*0.1
            150=100*0.3+100*0.4+100*0.1+100*0.7
上面为第一次折射结束后的伤害,问的是第10次折射结束后每个Mercurial需要承受多少伤害。

Source

未分类