zoukankan      html  css  js  c++  java
  • BZOJ1601 [Usaco2008 Oct]灌水[最小生成树]

    显然分析可知这个图最后连起来是一个森林,每棵树有一个根再算一个代价。那么这些跟需要连向某一点一个建立水库的代价,且根可以有多个但不能没有,则考虑用超级源点0向所有点连虚边,Prim跑MST即可保证有至少一个根。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<queue>
     7 #define dbg(x) cerr << #x << " = " << x <<endl
     8 #define dbg2(x,y) cerr<< #x <<" = "<< x <<"  "<< #y <<" = "<< y <<endl
     9 using namespace std;
    10 typedef long long ll;
    11 typedef double db;
    12 typedef pair<int,int> pii;
    13 template<typename T>inline T _min(T A,T B){return A<B?A:B;}
    14 template<typename T>inline T _max(T A,T B){return A>B?A:B;}
    15 template<typename T>inline char MIN(T&A,T B){return A>B?(A=B,1):0;}
    16 template<typename T>inline char MAX(T&A,T B){return A<B?(A=B,1):0;}
    17 template<typename T>inline void _swap(T&A,T&B){A^=B^=A^=B;}
    18 template<typename T>inline T read(T&x){
    19     x=0;int f=0;char c;while(!isdigit(c=getchar()))if(c=='-')f=1;
    20     while(isdigit(c))x=x*10+(c&15),c=getchar();return f?x=-x:x;
    21 }
    22 const int N=300+7,INF=0x3f3f3f3f;
    23 int mp[N][N],dis[N],vis[N];
    24 int n,ans;
    25 
    26 int main(){//freopen("test.in","r",stdin);//freopen("test.ans","w",stdout);
    27     read(n);for(register int i=1;i<=n;++i)read(dis[i]);
    28     for(register int i=1;i<=n;++i)for(register int j=1;j<=n;++j)read(mp[i][j]);
    29     for(register int i=1,tmp=INF,pt;i<=n;++i,tmp=INF){
    30         for(register int j=1;j<=n;++j)if(!vis[j]&&MIN(tmp,dis[j]))pt=j;
    31         ans+=tmp;vis[pt]=1;
    32         for(register int j=1;j<=n;++j)if(!vis[j])MIN(dis[j],mp[pt][j]);
    33     }
    34     return printf("%d
    ",ans),0;
    35 }
    View Code

    总结:连虚边向超级源点的套路要记住。

  • 相关阅读:
    从零开始的ESP8266探索(1)-使用Server功能搭建Web Server
    模型收集
    3D打印社区
    [教程]教你如何制作彩色的3D打印Groot
    1-5 软件安装
    1-4 打印机测试
    1-3 打印机几个重要操作
    1-1 打印机基本参数
    1-2 打印机使用注意事项
    (二 -3-3) 天猫精灵接入Home Assistant-自动发现Mqtt设备-自动生成配置信息
  • 原文地址:https://www.cnblogs.com/saigyouji-yuyuko/p/11660247.html
Copyright © 2011-2022 走看看