51nod 1366 贫富差距
来源:互联网 发布:智能手机上制作软件 编辑:程序博客网 时间:2024/05/14 23:13
先用并查集判断所有节点是否在同一集合内。如果不是,输出-1。
然后求图中最远两点的距离即可。
#include<bits/stdc++.h>using namespace std;const int N=55;int n,fa[N],vis[N];char mz[N][N];int findfa(int x){return fa[x]==x?x:fa[x]=findfa(fa[x]);}int bfs(int x){int tmp,i,step;memset(vis,0,sizeof(vis));queue<int> q;q.push(x);vis[x]++;while(!q.empty()){tmp=q.front();q.pop();x=tmp%100;step=tmp/100;for(i=1;i<=n;i++){if(mz[x][i]=='Y'&&!vis[i]){q.push((step+1)*100+i);vis[i]++;}}}return tmp/100;}int main(){int T,i,j,ans,d;cin>>T;while(T--){scanf("%d%d",&n,&d);for(i=1;i<=n;i++)fa[i]=i;for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf(" %c",&mz[i][j]);if(mz[i][j]=='Y')fa[findfa(i)]=findfa(j);}for(i=2;i<=n;i++){if(findfa(i)!=findfa(1))break;}if(i<=n){printf("-1\n");continue;}ans=0;for(i=1;i<=n;i++)ans=max(ans,bfs(i));printf("%d\n",ans*d);}}
0 0
- 51nod 1366 贫富差距
- 51nod-1366:贫富差距
- 51Nod 1366 贫富差距
- 51nod 1366 贫富差距
- 51Nod-1366 贫富差距
- 51nod 1366 贫富差距 弗洛伊德
- 51Nod-1366-贫富差距
- 51nod 1366 贫富差距(最短路)
- 51nod oj 1366 贫富差距【枚举+最长的短路】
- 51nod 1366 贫富差距【并查集+Floyd】
- 51nod 1366 贫富差距 (并查集+最短路径)
- 1366 贫富差距
- 贫富差距
- 浅谈贫富差距。
- 贫富差距 wealth gap
- 贫富差距源于理财意识
- 51Nod
- 51Nod
- oracle 无效列索引
- Java网络爬虫crawler4j学习笔记<22> Parser 类
- 如愿以偿,艰辛跋涉
- 8086系统中字的“对准存放”
- ASH沟通方法
- 51nod 1366 贫富差距
- 琪露诺(单调队列)
- 七种排序算法
- jsp中include指令的使用
- python 实现TXT数据读写例子(源代码)
- python中大文件的导入与导出
- JavaSE:常量,变量的认识
- Hdu 4888 Redraw Beautiful Drawings(最大流+方案唯一判断)
- 深入理解c++中的异常处理机制