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

📄 toj_2948_zwd.cpp

📁 Tianjin University Online Judge 的80多道题目 .
💻 CPP
字号:
 #include <stdio.h>
 #include<cstdlib>
 #include<cstring>
#define MAXNUM 30
int n;
double p[ MAXNUM ][ MAXNUM ],max=0;
double pM[ MAXNUM ] , pMul[ MAXNUM ];

bool f[ MAXNUM ];

void dfs(int num,double temp)
{
    
	if(temp<max)
		return;
	int i;
        double remainMax;
        
	if(num==n)
	{
		if(temp>max)
			max=temp;
	}
	else
	{
            remainMax = 1;
            for( i = 0; i < n; i++ )
                if( !f[ i ] )
                    remainMax *= pM[ i ];
            if( temp * remainMax < max )
                return;
		for(i=0;i<n;i++)
		{
			if(!f[i])
			{
				f[i]=1;
				dfs(num+1,temp*p[num][i]);
				f[i]=0;
			}
		}
	}
}

int main()
{
    int t,i,j;
//    freopen( "toj_2948.in" , "r" , stdin );
//    freopen( "toj_2948.out" , "w" , stdout );
//    while( scanf("%d",&n) && n  ){
    scanf( "%d" , &n );
    memset( f , 0 , sizeof( f ) );
    memset( pM , 0 , sizeof( pM ) );
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            scanf("%d",&t);
            p[i][j]=t/100.0;
        }
    for( i = 0; i < n; i++ )
        for( j = 0; j < n; j ++ )
            if( pM[ i ] < p[ j ][ i ] )
            pM[ i ] = p[ j ][ i ];
//     pMul[ n ] = 1;
//     for( i = n - 1; i >= 0; i-- )
//         pMul[ i ]  = pMul[ i + 1 ] * pMax[ i ];
    max = -1;
    dfs(0,1);
    printf("%lf\n",max*100.0);
//    }
    return 0;
}

⌨️ 快捷键说明

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