uva 10985 - Rings'n'Ropes( 最短路Folyd)
来源:互联网 发布:dm1016破解网络锁 编辑:程序博客网 时间:2024/06/05 19:37
题目连接:uva 10985 - Rings'n'Ropes
题目大意:给出n和m,表示有n个戒指和m条绳子,每条绳子的长度为1,给出每根绳子连接的戒指,然在左右手各握住一个戒指,拉直,问说最多有多少个绳子被绷直。
解题思路:首先先用Floyd算法将每两个戒指之间的最短距离求出(因为向两端扯的时候,最大距离便是连接两个戒指的最短距离),然后枚举两枚戒指,找出中间所有的点(f[x][i] + f[i][y] == f[x][y]);然后在将两点之间所有的点枚举两点,只有这两点之间存在边,并且f[x][i] != f[x][j];
#include <stdio.h>#include <string.h>#define min(a,b) (a)<(b)?(a):(b)#define max(a,b) (a)>(b)?(a):(b)const int N = 150;const int INF = 0x3f3f3f3f;int n, m, ans, g[N][N], f[N][N];void init() {int a, b;memset(g, 0, sizeof(g));memset(f, INF, sizeof(f));scanf("%d%d", &n, &m);for (int i = 0; i < m; i++) {scanf("%d%d", &a, &b);f[a][b] = f[b][a] = g[a][b] = g[b][a] = 1;}for (int i = 0; i < n; i++)f[i][i] = 0;}void Floyd() {for (int k = 0; k < n; k++)for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)f[i][j] = min(f[i][j], f[i][k] + f[k][j]);}int solve() {int tmp, ans = 0;int c, s[N];for (int x = 0; x < n; x++) {for (int y = x + 1; y < n; y++) {if (f[x][y] == INF) continue;tmp = c = 0;memset(s, 0, sizeof(s));for (int i = 0; i < n; i++) if (f[x][i] + f[i][y] == f[x][y]) s[c++] = i;for (int i = 0; i < c; i++) {for (int j = i + 1; j < c; j++) {if (g[s[i]][s[j]] && f[x][s[i]] != f[x][s[j]]) tmp++;}}ans = max(ans, tmp);}}return ans;}int main () {int cas;scanf("%d", &cas);for (int i = 1; i <= cas; i++) {init();Floyd();printf("Case #%d: %d\n", i, solve() );}return 0;}
- uva 10985 - Rings'n'Ropes( 最短路Folyd)
- UVA - 10985 Rings'n'Ropes 最短路
- Rings'n'Ropes (Uva 10985 floyd+枚举)
- uva 10985 Rings'n'Ropes 解题报告
- UVA 10985 - Rings'n'Ropes(floyd)
- UVa 10985 Rings'n'Ropes floyd+BFS
- Rings'n'Ropes - UVa 10985 Floyd
- uva 10952 Rings'n'Ropes
- uva 567 Risk(最短路Folyd)
- UVa10985 Rings'n'Ropes
- UVA-10048 Audiophobia(最短路上的最小值,Folyd)
- 最短路算法之Folyd算法
- hdu2544 最短路 Bellman_Ford Dijkstra Folyd
- POJ 1125 Stockbroker Grapevine 最短路folyd算法
- PKU 3311 Hie with the Pie 最短路 folyd
- 最短路模板-folyd bellman Dijkastra+路径还原+SPFA
- UVA 10537(最短路)
- POJ1125(folyd多源最短路)
- 【Leetcode】Pow(x, n)
- C++ 继承和派生
- 基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
- chattr 命令
- 3.小球
- uva 10985 - Rings'n'Ropes( 最短路Folyd)
- (Relax ST1.20)POJ 3663 Costume Party(贪心+剪枝)
- 关于iphone定位的基本知识
- javascript类型跟版本断定与检测_Javascript教程
- (8)MATLAB 形态学处理
- java设计模式
- http server样例
- 进制转换【模板】
- jquery(全选、反选、添加、删除、移动元素)