zoukankan      html  css  js  c++  java
  • nyist 510昂贵的聘礼

    /*
    好好的图论题啊,最短路的应用,dijkstra算法 
    */
    #include <iostream>
    using namespace std;
    const int INF=100000;
    int a[105][105],b[105],c[105],s[105],dist[105];
    int n,m;
    int dj(int p,int q)
    {
    	int i,j,r,t,k=0;
    	for(i=0;i<n;i++)
    	if((b[i]>=p&&b[i]<=q)) dist[i]=a[k][i], s[i]=0; else dist[i]=INF,s[i]=0;
    	dist[0]=0; s[0]=1;
    	for(i=1;i<n;i++)
    	{
    		t=INF;
    		for(j=0;j<n;j++)
    		if(!s[j]&&dist[j]<t) t=dist[j],k=j;
    		s[k]=1;
    		for(j=0;j<n;j++)
    		if(!s[j]&&a[k][j]<INF&&b[j]>=p&&b[j]<=q)
    		{
    			r=dist[k]+a[k][j];
    			if(dist[j]>r) dist[j]=r;
    		}
    	}
    	t=c[0];
    	for(i=0;i<n;i++)
        if(dist[i]+c[i]<t) t=dist[i]+c[i];
    		return t;
    }
    int main(int argc, char *argv[])
    {
    	int i,j,k,p,q,l,r;
    	while(cin>>m>>n&&(m||n))
    	{
    		for(i=0;i<n;i++)
    		for(j=0;j<n;j++)
    		a[i][j]=INF;
    	for(i=0;i<n;i++)
    	{
    		
    		cin>>c[i]>>b[i]>>k;
    	    for(j=0;j<k;j++)
    	    {
    	    cin>>p>>q;
    	    a[i][p-1]=q;
    	    }
    	}
    	r=c[0];
         for(i=b[0]-m;i<=b[0];i++)
         {
    	 k=dj(i,i+m);
    	 if(k<r) r=k;
         }
         cout<<r<<endl;
    	}
    	return 0;
    }        


  • 相关阅读:
    CentOS-Docker安装RabbitMQ集群(rabbitmq:3.7.16-management)
    Xcode Shortcuts
    In App Purchase
    CoreData
    Sandbox 文件存放规则
    在 mac os 上搭建 git server
    Git
    Git and Xcode
    心算技巧
    AppleScript
  • 原文地址:https://www.cnblogs.com/james1207/p/3265371.html
Copyright © 2011-2022 走看看