zoukankan      html  css  js  c++  java
  • hdu 1217 Arbitrage

    点击打开链接

    乘法+floyd

    #include"stdio.h"
    #include"string.h"
    #define INF 0
    int n,m;
    double map[31][31];
    char str[31][33];
    void floyd()
    {
    	int i,j,k;
    	for(k=0;k<n;k++)
    		for(i=0;i<n;i++)
    			for(j=0;j<n;j++)
    				if(map[i][j]<map[i][k]*map[k][j])
    					map[i][j]=map[i][k]*map[k][j];
    				
    }
    int main()
    {
    	int i,j,ii,jj,cas;
    	double t;
    	char s[33],ss[33];
    	cas=1;
    	while(scanf("%d",&n),n)
    	{
    		getchar();
    		for(i=0;i<n;i++)
    			gets(str[i]);
    		scanf("%d",&m);
    		memset(map,0,sizeof(map));
    		for(i=0;i<m;i++)
    		{
    			scanf("%s %lf %s",s,&t,ss);
    			for(j=0;j<n;j++)
    			{
    				if(strcmp(str[j],s)==0)
    				{
    					ii=j;break;
    				}
    			}
    			for(j=0;j<n;j++)
    			{
    				if(strcmp(str[j],ss)==0)
    				{
    					jj=j;break;
    				}
    			}
    			map[ii][jj]=t;
    		}
    		floyd();
    		for(i=0;i<n;i++)
    		{
    			if(map[i][i]>1.0)
    			{
    				printf("Case %d: Yes\n",cas++);
    				break;
    			}
    		}
    		if(i==n)printf("Case %d: No\n",cas++);
    	}
    	return 0;
    }
    


  • 相关阅读:
    第25周三
    第25周二
    第25周一
    第24周日
    第24周六
    第24周五
    第24周四经验感受想法
    第24周三
    第24周二
    01背包问题
  • 原文地址:https://www.cnblogs.com/yyf573462811/p/6365384.html
Copyright © 2011-2022 走看看