codevs 1243 网络提速

题目描述 Description

某学校的校园网由n(1<=n<=50)台计算机组成,计算机之间由网线相连,如图5。其中顶点代表计算机,边代表网线。正如你所见,不同网线的传输能力不尽相同,例如计算机1与计算机2之间传输信息需要34秒,而计算机2与计算机3之间的传输信息只要10秒。计算机1与计算机5之间传输信息需要44秒,途径为机1到机3到机5。

现学校购买了m(1<=m<=10)台加速设备,每台设备可作用于一条网线,使网线上传输信息用时减半。多台设备可用于同一条网线,其效果叠加,即用两台设备,用时为原来的1/4,用三台设备,用时为原来的1/8。如何合理使用这些设备,使计算机1到计算机n传输用时最少,这个问题急需解决。校方请你编程解决这个问题。例如图5,若m=2,则将两台设备分别用于1-3,3-5的线路,传输用时可减少为22秒,这是最佳解。

输入描述 Input Description

第一行先输入n,m。以下n行,每行有n个实数。第i行第j列的数为计算机i与计算机j之间网线的传输用时,0表示它们之间没有网线连接。注意输入数据中,从计算机1到计算机n至少有一条网路。

输出描述 Output Description

输出计算机1与计算机n之间传输信息的最短时间。(保留两位小数)

样例输入 Sample Input

5 2

0 34 24 0 0

34 0 10 12 0

24 10 0 16 20

0 12 16 0 30

0 0 20 30 0

样例输出 Sample Output

22.00

数据范围及提示 Data Size & Hint

题解:好久没做关于最短路的题目了。感觉自己都不会打了。先做点稍微简单一点的。spfa。f[i][j]表示从1到i用j个加速最短时间。

#include <cstdio>
#define N 55
const double M=100000000009.0;
int n,m,a[N*N],b[N];
double t[N][N][N],f[N][N];
int main()
{
    scanf("%d%d",&n,&m);
    int i,j,k;
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
        {
           scanf("%lf",&t[i][j][0]);
           if(i==j) continue;
           if(!t[i][j][0])
             for(k=0;k<=m;k++) t[i][j][k]=M;
           else
             for(k=1;k<=m;k++) t[i][j][k]=t[i][j][k-1]/2;
        }
    for(i=2;i<=n;i++)
      for(j=0;j<=m;j++) f[i][j]=M;
    a[1]=b[1]=1;
    for(int h=1,t1=1,now;h<=t1;h++)
      {
        now=a[h];
        for(i=1;i<=n;i++)
          if(i!=now)
            for(j=0;j<=m;j++)
              for(k=0;k<=m-j;k++)
                if(f[now][k]+t[now][i][j]<f[i][j+k])
                   {
                      f[i][j+k]=f[now][k]+t[now][i][j];
                      if(!b[i])  b[i]=1,a[++t1]=i;
                   }
        b[now]=0;
      }
    printf("%.2lf",f[n][m]);
}

时间: 2024-10-21 00:05:18

codevs 1243 网络提速的相关文章

[codevs 1243][网络提速(最短路分层思想)

题目:http://dev.codevs.cn/problem/1243/ 分析: 先容易想到将一个点拆成m个点,分别对应不同的边连过去,但是想不到控制加速器数量的办法.看了题解才知道,每个点的分层,如0,1,2,……,m是表示从起点走到目前为止用的加速器的数量,这样就可以了,真的很巧妙……

网络提速(最短路)

codevs——1243 网络提速 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 某学校的校园网由n(1<=n<=50)台计算机组成,计算机之间由网线相连,如图5.其中顶点代表计算机,边代表网线.正如你所见,不同网线的传输能力不尽相同,例如计算机1与计算机2之间传输信息需要34秒,而计算机2与计算机3之间的传输信息只要10秒.计算机1与计算机5之间传输信息需要44秒,途径为机1到机3到机5. 现学校购买了m(1<

16.网络提速(最短路)

网络提速(最短路) 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 某学校的校园网由n(1<=n<=50)台计算机组成,计算机之间由网线相连,如图5.其中顶点代表计算机,边代表网线.正如你所见,不同网线的传输能力不尽相同,例如计算机1与计算机2之间传输信息需要34秒,而计算机2与计算机3之间的传输信息只要10秒.计算机1与计算机5之间传输信息需要44秒,途径为机1到机3到机5. 现学校购买了m(1<=

[codevs1243]网络提速

题目大意:有n台电脑,m个加速器,每台电脑之间传输文件有一个时间,每个加速器可以使传输时间减半(两台电脑之间可以有多个加速器),求电脑1传输文件到电脑n的最短时间. 解题思路:有些人先求出最短路径,再每次找当前最短路径的最长边用加速器(即贪心),然而这种方法有反例.例如: 3 1 0 3 7 3 0 3 7 3 0 贪心的话求出来的是4.5(1-2-3,在1-2或2-3之间用加速器),然而最优解是3.5(1-3,在1-3之间用加速器). 正确的解法应该是:最短路径+DP……吧(反正就是有点像最短

飞塔防火墙配置2条网络链路分流

飞塔配置2条网络链路分流 背景描述: 办公室网络原专线带宽不够,需要新增一条ppoe光纤拨号,实现网络提速,改善网络体验. 链路分配: PPOE光纤:非公司内网业务流量出口,即访问百度这些网站流量出口 专线:访问公司内部系统定向流量出口,即访问公司业务后台 操作步骤: 1.配置wan1为PPOE光纤拨号接口 2.更改原策略 将目的端口由原来的wan2改为wan1 3.更改静态路由 (1)更改总出口路由,由原来的wan2口更改为wan1口 (2)由于要完成wan2到公司内网通过VPN隧道的访问,所

邬贺铨:释放宽带提速降费红利 支撑经济社会转型升级(政策利好+未来方向,并且是重要的心理暗示)

宽带网络是21世纪经济社会发展的战略性公共基础设施,对于抓住新一轮科技革命和产业变革机遇,促进大众创业万众创新.培育新经济新动能,促进“四化”同步发展,加快网络强国建设具有重大意义.党中央.国务院高度重视网络基础设施发展工作,在相关部门和网络运营企业.互联网企业的共同努力下,两年多来,我国宽带网络发展取得了长足进步,但顺应经济发展需要和社会期盼,还要加强统筹,抓紧再出台一批提速降费新措施,全面提升宽带发展质量,让宽带发展红利惠及大众和广大企业. 宽带网络提速降费成效显著 自2015年5月国务院办

《“十三五”国家信息化规划》涉及网络与信息安全的内容摘录

就在今天(12月27日),国务院全文刊发了<"十三五"国家信息化规划>(参见:http://www.gov.cn/zhengce/content/2016-12/27/content_5153411.htm).在此摘录跟网络与信息安全相关的内容如下: [注:我最关注的几点是(信息量太大!)] 构建关键信息基础设施安全保障体系.实施网络安全审查制度,防范重要信息技术产品和服务网络安全风险.建立国家关键信息基础设施目录,制定关于国家关键信息基础设施保护的指导性文件,进一步明确关

提速固然重要 降费也应同步

虽然三大运营商今年上半年的财报不算亮眼,但从传统语音向数据流量的业务转型却像开弓的箭,是一去无法回头的.因此对于移动.电信.联通而言,4G业务才是真正的未来,不断加速采用新技术为用户提供更好地网络体验已经成为了一种共识.但从用户的角度来看,更好.更快的网络固然重要,但更加实惠的资费也同样重要,如果只是网络速度提上去了,但流量费却依然用不起,那可真是网友常言的“然并卵”了. 那么,在三大运营商的4G网络提速计划相继出台的同时,更受广大用户关注的“降费”事宜有没有好消息呢?近日,广东移动副总经理邱文

[读书笔记]移动的帝国

自己的时代,自己明白.图腾.谎言.真相,如何识破,如何理清,是每个人自己的事. "阿米巴"经营模式源于稻盛创业早年的困境,当时他一个人既负责研发,又负责营销,当公司发展到100人以上时,觉得苦不堪言,非常渴望有许多个自己的分身可以到各重要部门承担责任.于是,他把公司细分成所谓"阿米巴"的小集体,从公司内部选拔"阿米巴"领导,并委以经营重任,从而培育出许多具有经营者意识的领导. "阿米巴"经营方式的最大特点是,让企业中的员工对企