#include #include #include using namespace std; const double INF=0x3f3f3f3f; double ans; int n,m,p,a,b; int t[20]; int dis[50][50]; double dp[1<<10][32];//dp[s][u]表示到达当前u点(持有s的车票)的最小花费 void solve(){ //memset(dp,0x3f,sizeof(dp));//整型数赋值,不可以 for(int i=0;i<(1<<(n+1));i++) fill(dp[i],dp[i]+m+1,INF); // for(int i=0;i<(1<<(n+1));i++) // for(int j=0;j<=m+1;j++) // dp[i][j]=INF; dp[(1<=0;S--)//状态 { for(int u=1;u<=m;u++)//城市 for(int i=0;i>i)&1) for(int v=1;v<=m;v++)//城市 if(dis[u][v]>=0) dp[S&~(1<