博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2433
阅读量:5051 次
发布时间:2019-06-12

本文共 2240 字,大约阅读时间需要 7 分钟。

考虑删掉每条边会不会影响最短路之和

标记

暴力求解

#include 
#include
#include
#include
const int N = 110;int dis[N], vis[N], Map[N][N], sum[N], used[N][N][N];int A[N * 30], B[N * 30];int n, m;std:: queue
Q;inline int Bfs(int start, int opt) { for(int i = 1; i <= n; i ++) vis[i] = 0, dis[i] = 0; Q.push(start); vis[start] = 1; while(!Q.empty()) { int topp = Q.front(); Q.pop(); for(int i = 1; i <= n; i ++) { if(!vis[i] && (Map[topp][i] > 0 || Map[i][topp] > 0)) { vis[i] = 1; if(! opt) used[start][topp][i] = used[start][i][topp] = 1; dis[i] += dis[topp] + 1; Q.push(i); } } } int ret = 0; for(int i = 1; i <= n; i ++) { if(!dis[i] && i != start) return -1; ret += dis[i]; } return ret;}int main() { while(~ (scanf("%d%d", &n, &m))) { memset(Map, 0, sizeof Map); memset(used, 0, sizeof used); memset(sum, 0, sizeof sum); for(int i = 1; i <= m; i ++) { std:: cin >> A[i] >> B[i]; Map[A[i]][B[i]] ++, Map[B[i]][A[i]] ++; } int Flag = 0; for(int i = 1; i <= n; i ++) { sum[i] = Bfs(i, 0); if(sum[i] == -1) { Flag = -1; break; } else Flag += sum[i]; } for(int i = 1; i <= m; i ++) { int Nowtot = Flag; Map[A[i]][B[i]] --, Map[B[i]][A[i]] --; if(Map[A[i]][B[i]] > 0) std:: cout << Nowtot << "\n"; else if(Nowtot == -1) std:: cout << "INF\n"; else { bool flag = 0; for(int j = 1; j <= n; j ++) if(used[j][A[i]][B[i]] == 1) { Nowtot -= sum[j]; int tmp = Bfs(j, 1); if(tmp == -1) {flag = 1; break;} Nowtot += tmp; } if(flag) std:: cout << "INF\n"; else std:: cout << Nowtot << "\n"; } Map[A[i]][B[i]] ++, Map[B[i]][A[i]] ++; } } return 0;}

 

转载于:https://www.cnblogs.com/zjoiak/p/9418952.html

你可能感兴趣的文章
团队冲刺07
查看>>
自学知识(四)
查看>>
字典操作
查看>>
Java 排序(快排,归并)
查看>>
解析html
查看>>
linux日常管理-系统进程查看工具-ps
查看>>
HandlerThread&Looper&MessageQueue
查看>>
ROM的一种写法
查看>>
VIM Taglist + ctags
查看>>
supervisord
查看>>
搭建spark+hadoop平台
查看>>
Linux上让MySQL不区分表名大小写的方法
查看>>
Linux文件管理_1
查看>>
steps1-->Struct2-控制器组件
查看>>
sql server中index的REBUILD和REORGANIZE的区别及工作方式
查看>>
sql server升级打补丁
查看>>
ubuntu10.04安装x264库
查看>>
772002画马尾
查看>>
PHP传值和传引用、传地址的区别
查看>>
【Leetcode】Search in Rotated Sorted Array II
查看>>