USACO Section 4.1 Fence Loops
来源:互联网 发布:淘宝照片修图教程 编辑:程序博客网 时间:2024/05/20 09:45
题意:
无向图最小权环
思路:
Floyd变形
代码:
/*ID: housera1PROG: fence6LANG: C++*/#include<cstdio>#include<cstring>#include<algorithm>#include<map>using namespace std;#define M 105#define N 210#define oo ~0u>>1int m,n,ans;int dis[N][N],maz[N][N];struct node{ int ed[M]; bool operator<(const node fa) const { int i; for(i=1;i<=m;i++) { if(ed[i]!=fa.ed[i]) return ed[i]<fa.ed[i]; } return false; } void init(int s) { memset(ed,0,sizeof(ed)); ed[s]=1; }}nd;map<node,int> hashtab;void floyd(){ int k,i,j; for(k=1;k<=n;k++) { for(i=1;i<=n;i++) { if(i==k||maz[i][k]==oo) continue; for(j=1;j<=n;j++) { if(j==k||j==i||maz[k][j]==oo||dis[i][j]==oo) continue; ans=min(ans,dis[i][j]+maz[i][k]+maz[k][j]); } } for(i=1;i<=n;i++) { if(i==k||dis[i][k]==oo) continue; for(j=1;j<=n;j++) { if(j==k||j==i||dis[k][j]==oo) continue; dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); } } }}int main(){int Debug=0;if(!Debug){freopen("fence6.in","r",stdin);freopen("fence6.out","w",stdout);}int i,j,in,u,v,n1,n2,id,len;for(i=1;i<N;i++) { for(j=1;j<N;j++) dis[i][j]=maz[i][j]=oo; dis[i][i]=0; } scanf("%d",&m); for(i=1,n=0;i<=m;i++) { scanf("%d%d%d%d",&id,&len,&n1,&n2); nd.init(id); for(j=1;j<=n1;j++) { scanf("%d",&in); nd.ed[in]=1; } if(hashtab[nd]==0) hashtab[nd]=++n; u=hashtab[nd]; nd.init(id); for(j=1;j<=n2;j++) { scanf("%d",&in); nd.ed[in]=1; } if(hashtab[nd]==0) hashtab[nd]=++n; v=hashtab[nd]; maz[u][v]=maz[v][u]=dis[u][v]=dis[v][u]=min(dis[u][v],len); } ans=oo; floyd(); printf("%d\n",ans);return 0;}
0 0
- USACO Section 4.1 Fence Loops
- Section 4.1 Fence Loops
- USACO Section 4.1 Fence Loops - 简单深搜~
- USACO 4.1 Fence Loops (fence6)
- usaco 4.1.3 Fence Loops
- USACO-Section 4.1 Fence Loops (无向图最小环[Dijkstra||Floyd])
- USACO Section 4.1 Fence Rails
- usaco 4.1 Fence Loops 最小环
- USACO 4.1.3 Fence Loops解题报告
- USACO 4.1 Fence Loops 最小环
- usaco 4.1.3 Fence Loops (floyd)做法
- usaco Fence Loops
- usaco Fence Loops
- USACO Fence Loops 解题报告
- usaco 4.1 Fence Loops(floyd求最小环)
- 【USACO题库】4.1.3 Fence Loops篱笆回路
- C++——【USACO 4.1.2】——Fence Loops
- USACO Section 4.1 Fence Rails - 用DFSID解多维背包..
- Scala入门
- 基于Hadoop2.2.0版本分布式云盘的设计与实现
- 在Tomcat下部署java web项目的简单方法步骤
- 01_14/15:Handler的使用
- 《C++ Primer》学习笔记——C++引用
- USACO Section 4.1 Fence Loops
- 排序算法
- Doing Homework again 贪心
- ZOJ 1508 Intervals (差分约束系统)
- 使用形态学滤波对图像进行腐蚀、膨胀运算
- 神奇的心理学,让你软件收入瞬间增加200%
- 01_20:XML文件解析
- stdafx.h、stdafx.cpp作用
- android文件下载及自定义通知显示下载进度