zoukankan      html  css  js  c++  java
  • B. Greg and Graph 夜

    http://codeforces.com/contest/295/problem/B

    floyd 算法的本质是动态规划 只有理解其中动态规划的原理 才能更好的运用

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    
    using namespace std;
    
    const int N=505;
    int a[N][N];
    int b[N];
    long long sum[N];
    
    int main()
    {
        //freopen("data.in","r",stdin);
    	int n;
    	while(cin>>n)
    	{
    		memset(sum,0,sizeof(sum));
    		for(int i=1;i<=n;++i)
    			for(int j=1;j<=n;++j)
    			{
    				cin>>a[i][j];
    			}
    		for(int i=1;i<=n;++i)
    			cin>>b[i];
    		for(int k=n;k>=1;--k)
    		{
    			for(int i=1;i<=n;++i)
    				for(int j=1;j<=n;++j)
    				{
    					a[i][j]=min(a[i][j],a[i][b[k]]+a[b[k]][j]);
    				}
    
    			for(int i=k;i<=n;++i)
    			for(int j=k;j<=n;++j)
    			{
    				sum[k]+=(a[b[i]][b[j]]);
    			}
    
    
    		}
    		for(int i=1;i<=n;++i)
    		cout<<sum[i]<<" ";
    		cout<<endl;
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    os模块
    sys模块
    time时间模块
    collections模块
    修改Jenkins的主目录步骤
    jenkins管理
    求2个集合的差集
    MVC动态二级域名解析
    解决MVC 时间序列化的方法
    MVC修改视图的默认路径
  • 原文地址:https://www.cnblogs.com/liulangye/p/3027681.html
Copyright © 2011-2022 走看看