1601: [Usaco2008 Oct]灌水
来源:互联网 发布:python arma 编辑:程序博客网 时间:2024/05/21 19:31
题目链接
题目大意:n块农田灌水,可以修水库或者从其他农田引水,求最少代价。
题解:建个源点连边搞搞就行。很久以前的代码,码风诡异……
我的收获:……
#include <cstdio>#include <iostream>#include <algorithm>#define M 305using namespace std;int n,m,tot,x,y,z,ans,w;int v[M*M],u[M*M],val[M*M];int f[M],r[M*M];void init(){ cin>>n; for(int i=1;i<=n;i++){ scanf("%d",&w); u[++m]=n+1;v[m]=i;val[m]=w; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%d",&z); if(i!=j){ u[++m]=i;v[m]=j;val[m]=z; } }}int cmp(const int a,const int b){ return val[a]<val[b];}int find(int x){ return f[x]==x?x:f[x]=find(f[x]);}void work(){ for(int i=1;i<=n;i++) f[i]=i; for(int i=1;i<=m;i++) r[i]=i; sort(r+1,r+1+m,cmp); for(int i=1;tot<=n-1;i++) { int e=r[i]; x=find(u[e]),y=find(v[e]); if(x!=y){ f[x]=y;tot++; ans+=val[e]; } } printf("%d\n",ans);}int main(){ init(); work(); return 0;}
阅读全文
0 0
- 1601: [Usaco2008 Oct]灌水
- BZOJ 1601 [Usaco2008 Oct]灌水
- bzoj 1601 [Usaco2008 Oct]灌水
- bzoj 1601: [Usaco2008 Oct]灌水
- [BZOJ]1601: [Usaco2008 Oct]灌水
- 【bzoj 1601】[Usaco2008 Oct]灌水
- BZOJ 1601: [Usaco2008 Oct]灌水
- BZOJ 1601 Usaco2008 Oct 灌水 Prim
- BZOJ 1601 [Usaco2008 Oct]灌水 MST
- Kruskal-BZOJ-1601- [Usaco2008 Oct]灌水
- BZOJ 1601: [Usaco2008 Oct]灌水 kruskal
- [Bzoj1601][Usaco2008 Oct]灌水
- bzoj1601 [Usaco2008 Oct]灌水
- [BZOJ1601] [Usaco2008 Oct]灌水
- [BZOJ1601][Usaco2008 Oct]灌水
- bzoj1601[Usaco2008 Oct]灌水
- bzoj1601【Usaco2008 Oct】灌水
- [Usaco2008 Oct]灌水(MST)
- CSS代码(四):float元素的垂直居中
- Liunx系统为Chromium安装和更新falsh
- 【安卓开发】连接百度地图api
- log4j.properties 配置详解
- Docker中Mysql主从复制实践总结
- 1601: [Usaco2008 Oct]灌水
- springmvc mybatis 分页 控制层及sql语句 oracle mysql easyui
- [2017湖南集训7-9]大佬的问题 (数点问题)
- C++构造拷贝中拷贝的N种调用情况
- Map接口和AbstractMap抽象类详解
- webpack.config.js全部有关配置
- PICT生成两两组合测试用例集
- 网络流最大流EK和Dinic入门算法
- 比赛时出现的一些细节错误