zoukankan      html  css  js  c++  java
  • 最小生成树

    zznu 1983
    最小生成树的变形,关键是想不到,想到也就不会觉得难了
    #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<cctype> #include<algorithm> #include <vector> #include <queue> using namespace std; #define INF 0x3f3f3f3f #define N 500 int maps[N][N]; int dist[N], vis[N]; void Init(int n) { for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) maps[i][j]=i==j ? 0 : INF; } int Prim(int n) { for(int i=1; i<=n; i++) dist[i]=maps[0][i]; memset(vis, 0, sizeof(vis)); vis[0]=1; int sum=0, Min, index; while(1) { Min=INF; for(int i=0; i<=n; i++) if(!vis[i]&&Min>dist[i]) { Min=dist[i]; index=i; } if(Min==INF) break; sum+=Min; vis[index]=1; for(int i=0; i<=n; i++) if(!vis[i]&&maps[index][i]<dist[i]) dist[i]=maps[index][i]; } return sum; } int main() { int T, n; scanf("%d", &T); while(T--) { scanf("%d", &n); Init(n); for(int i=0; i<=n; i++) for(int j=1; j<=n; j++) scanf("%d", &maps[i][j]); int ans=Prim(n); printf("%d ", ans); } return 0; }
  • 相关阅读:
    高一下期末考试划水记
    BZOJ 1053
    积性函数与狄利克雷卷积(未完待更)
    Contest Hunter 3101
    POJ2689
    3.17爆零赛
    全概率公式
    矩阵快速幂
    模板练习
    _rqy's Code Style for OI
  • 原文地址:https://www.cnblogs.com/9968jie/p/5524532.html
Copyright © 2011-2022 走看看