Pagini recente » Cod sursa (job #2454771) | Cod sursa (job #1665852) | Cod sursa (job #404956) | Cod sursa (job #158727) | Cod sursa (job #469849)
Cod sursa(job #469849)
# include <cstdio>
using namespace std;
double dp [ ( 1 << 18 ) ];
int n;
double a [ 18 ] [ 18 ];
void solve ( int state ){
int i, j, nFish;
double s;
for ( ; state; -- state ){
nFish = 0;
for ( i = 0; i < n; ++ i )
if ( ( state & ( 1 << i ) ) )
++ nFish;
for ( i = 0; i < n; ++ i )
if ( ( state & ( 1 << i ) ) ){
s = 0.0;
for ( j = 0; j < n; ++ j )
if ( ( state & ( 1 << j ) ) )
s += a [ j ] [ i ];
dp [ ( state ^ ( 1 << i ) ) ] += ( double ) ( dp [ state ] * s * 2 ) / ( double ) ( nFish * ( nFish - 1 ) );
}
}
}
int main(){
int i, j;
scanf ( "%d", &n );
for ( i = 0; i < n ; ++ i )
for ( j = 0; j < n; ++ j )
scanf ( "%lf", &a [ i ] [ j ] );
dp [ ( 1 << n ) - 1 ] = 1.0;
solve ( ( 1 << n ) - 1);
for ( i = 0; i < n; ++ i )
printf ( "%.7lf ", dp [ 1 << i ] );
printf ( "\n" );
return 0;
}