搜索
查看: 1048|回复: 0
打印 上一主题 下一主题

[题目/题解] Rqnoj 319 FLOYD

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-20 20:00:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[code=Cpp width=700px]
#include <iostream>
using namespace std;
int e[999][999],n,m,i,j,k,t1,t2,t3,a[999];
int main()
{
        cin >> n;

        for(i=1;i<=n;i++)
        {
                cin >> a >> t2 >> t3;
                e[t2]=e[t3]=1;
                e[t2]=e[t3]=1;
        }

        for(i=1;i<=n;i++)
        {
                for(j=1;j<=n;j++)
                {
                        if(e[j]==0 && i!=j)
                                e[j]=99999;
                }
        }
        for(k=1;k<=n;k++)
        {
                for(i=1;i<=n;i++)
                {
                        for(j=1;j<=n;j++)
                        {
                                if(e[k]!=99999 && e[k][j]!=99999 && e[j]>e[k]+e[k][j])
                                        e[j]=e[k]+e[k][j];
                        }
                }
        }
        int t,min=999999;
        for(i=1;i<=n;i++)
        {
                t=0;
                for(j=1;j<=n;j++)
                        t=t+a[j]*e[j];
                if(t<min)
                        min=t;
        }
        cout << min;
        return 0;
}
[/code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表