51Nod - 1366
2018-03-15 13:41
155 查看
按理说是个模板题,一开始以为是差分约束然后搞了搞总是只能过去一部分点,不知道为啥==….
然后发现其实floyd跑一遍就行了,数据范围小的可怜….
最大差值就是最短路里面的最大值….
卒….
然后发现其实floyd跑一遍就行了,数据范围小的可怜….
最大差值就是最短路里面的最大值….
卒….
#include<cstdio> #include<iostream> #include<cstring> #include<string> #include<algorithm> using namespace std; int e[60][60]; int main() { int t,n,d,i,j,k; cin>>t; while(t--){ string str; memset(e,0x3f,sizeof(e)); cin>>n>>d; for(i=0;i<n;i++)e[i][i]=0; for(i=0;i<n;i++){ cin>>str; for(j=i+1;j<n;j++){ if(str[j]=='Y') e[i][j]=e[j][i]=d; } } // for(i=0;i<n;i++) // for(j=0;j<n;j++)cout<<e[i][j]<<' '; for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) e[i][j]=min(e[i][j],e[i][k]+e[k][j]); int maxn=0;bool wq=false; for(i=0;i<n;i++) for(j=i+1;j<n;j++){ if(e[i][j]==0x3f3f3f3f){ wq=true;break; } maxn=max(e[i][j],maxn); } if(wq)cout<<-1<<endl; else cout<<maxn<<endl; } return 0; }
相关文章推荐
- 51nod 1366 贫富差距
- 51Nod-1366 贫富差距
- 51Nod 1366 贫富差距
- 51nod 1366 贫富差距 弗洛伊德
- 51nod 1366 贫富差距(最短路)
- 51nod 1366 贫富差距
- 51Nod-1366-贫富差距
- 51nod 1366 贫富差距 (并查集+最短路径)
- 51nod 1366 贫富差距【并查集+Floyd】
- 51nod 1366 贫富差距(flody)
- 51nod-1366:贫富差距
- 51nod 1376 最长递增子序列的数量 树状数组
- 51nod 1135 求原根(板子
- 51nod--任务执行顺序
- 51nod 1227
- 51nod 1088 最长回文子串
- K进制下的大数 51Nod - 1116
- 51nod 1081 子段求和
- 51nod 1435 位数阶乘
- 51nod--1459 迷宫游戏 (dijkstra)