⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockbroker grapevine.txt

📁 以前ACM在哈工程HRBEU做的一些简单题目
💻 TXT
字号:
#include <iostream>
using namespace std;
int stockman[100][100],d[100],n,p,c;
bool color[10],flag;
void visit(int h)
{
     int q[10000],f=0,r=-1,i,t;
     memset(color,1,n);
     memset(d,0,sizeof(d));
     color[h]=false;
     q[++r]=h;
     while(f<=r)
     {
     t=q[f++];
     for(i=0;i<n;i++)
     if(stockman[t][i]!=0)
     {
       if(color[i]==true)
       {
         color[i]=false;                
         d[i]=d[t]+stockman[t][i];
         q[++r]=i;
       }
       else
       {
           if(d[i]>d[t]+stockman[t][i])
           {
            d[i]=d[t]+stockman[t][i];
            q[++r]=i;
           }
       }
     }
     } 
     for(i=0;i<n;i++)if(color[i]==true)break;
     if(i>=n)
     {
             flag=false;
             t=d[0];
             for(i=1;i<n;i++)if(d[i]>t)t=d[i];
             if(c>t){c=t;p=h;}
     }
}    
int main()
{
  int n1,x,y,i;
  while(cin>>n&&n!=0)
  {
    memset(stockman,0,sizeof(stockman));
    for(i=0;i<n;i++)
    {
     cin>>n1;
     while(n1--){cin>>x>>y;stockman[i][x-1]=y;}
    }
    flag=true;
    c=10000;
    for(i=0;i<n;i++)visit(i);
    if(flag)cout<<"disjoint"<<endl;
    else cout<<p+1<<" "<<c<<endl;
   }
   return 0;
} 
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -