人流统计
   

  问题描述:

  小明是WH市长的全权顾问。最近,市长在对WH城市进行新的规划,希望能拓宽一些人流密度较大的街道,改善交通。

  WH城市是由N×M个方格组成的,一些方格是建筑物,用X表示;一些方格是街道,用 . 表示;还有一些方格是人流的出发地和目的地,用字母A~O表示。例如下面是一个4×4的城市平面图,有两个人流入口(出口):A和B。
           ....
           A.X.
           XXX.
           B...

  交通部门搜集了在某段时间内人群的流动情况,并以若干个三元组(S1,S2,C)表示。 

  (S1,S2,C)记录有C个单位人流从S1出发,目的地是S2。其中,S1和S2是字母A~O,表示入口(出口),C为实数。

  从S1出发,到S2的人流会按照以下规则移动:

  l.人流只能往东,南,西,北四个方向移动;
  2.人流除了出发时和结束时,在移动过程中只能经过"街道";
  3.人流将选择从S1到S2的最短路径来移动;
  4.如果从S1到S2有多条最短路径--设为K条(保证K不超过2^30),则人流量C将分成K等份,每一条最短路径有C/K人流经过。

  作为市长的顾问,交通部门会给小明一份城市的平面图和某段时间的人流情况。小明被要求统计出在这段时间内,每条街道总共被多少人流经过。
  
  输入文件:flow.in

  输入文件的第一行有两个数:N和M,表示城市平面图的规模。(1<N,M<25)
  以下N行,每行M个字母,描述了一个城市平面图。
  接下来描述的是人流情况,每行一个三元组:S1S2 C。(S1,S2为字母,C为实数),特殊的XX 0将表示文件结束。
  
  输出文件:flow.out

  输出文件有N行,每行M个实数,表示街道的人流情况,精确到小数点后两位。每个实数输出占7个字节,不足的在之前以空格补充(见样例)。
 
  样例输入:flow.in

  4 4
  ...
  A.X.
  XXX.
  B...
  AB 2
  BA 1
  XX 0

  样例输出:flow.out

  1.50 3.00 3.00 3.00
  0.00 1.50 0.00 3.00
  0.00 0.00 0.00 3.00
  0.00 3.00 3.00 3.00
 
   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有