好长时间没有做dp了 ,做个dp题 ,感觉跟模拟差不多,,这是在倒退啊。。
#include #include #include #include #include #include #include #include #define LL long long #define DB double using namespace std; const int N = 16; const int M = 17009; const int INF = 0x3f3f3f3f; int n,m; int dp[M]; int dis[N][N]; int eg[N]; void floyd() { for(int i=0;idis[j][i]+dis[i][k]) dis[j][k] = dis[k][j] = dis[j][i]+dis[i][k]; } int tdis[N][N]; int solve() { int c[N],t=0; memset(dp,INF,sizeof(dp)); dp[0] = 0; for(int i=0;ic) dis[a][b]=dis[b][a] = c; eg[a]++;eg[b]++; ans +=c; } floyd(); ans+=solve(); printf("Case %d: %d\n",T++,ans); } return 0; }