HDU 4738 Caocao's Bridges

题目链接

注意几个坑,可能重边,至少要派一个人去炸,没有连通的时候就不用炸了

代码:

#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std; const int N = 1005;
const int INF = 0x3f3f3f3f; int pre[N], low[N], dfs_clock; int n, m; struct Node {
int v, val, id;
Node() {}
Node(int v, int val, int id) {
this->v = v;
this->val = val;
this->id = id;
}
}; vector<Node> g[N];
int ans; int dfs(int u, int fa) {
int lowu = pre[u] = ++dfs_clock;
for (int i = 0; i < g[u].size(); i++) {
int v = g[u][i].v;
int id = g[u][i].id;
if (id == fa) continue;
if (!pre[v]) {
int lowv = dfs(v, id);
lowu = min(lowu, lowv);
if (lowv > pre[u])
ans = min(ans, g[u][i].val);
} else lowu = min(lowu, pre[v]);
}
return low[u] = lowu;
} int main() {
while (~scanf("%d%d", &n, &m) && n) {
int u, v, val;
memset(pre, 0, sizeof(pre));
dfs_clock = 0;
for (int i = 0; i < n; i++)
g[i].clear();
for (int i = 0; i < m; i++) {
scanf("%d%d%d", &u, &v, &val);
u--; v--;
g[u].push_back(Node(v, val, i));
g[v].push_back(Node(u, val, i));
}
int cnt = 0;
ans = INF;
for (int i = 0; i < n; i++) {
if (!pre[i]) {
cnt++;
dfs(i, -1);
}
}
if (cnt > 1) printf("0\n");
else if (ans == INF) printf("-1\n");
else {
if (ans == 0) ans = 1;
printf("%d\n", ans);
}
}
return 0;
}

最新文章

  1. weblogic启动受管服务器报错Authentication for user weblogic denied (weblogic 11g 域账号密码不生效的解决方法)
  2. Windows 10系统更换Windows 7系统磁盘分区注意事项一
  3. 网页播放器(jsp、js)
  4. [BZOJ1941][Sdoi2010]Hide and Seek
  5. 解决NetworkOnMainThreadException
  6. 从scanf的学习接口设计
  7. Quartz的任务的临时启动和暂停和恢复
  8. Flash AIR14导出ipa到Mac上的iOS模拟器测试
  9. Boolean类源码分析
  10. 查看linux系统状态
  11. iSwifting社区【www.iSwifting.com】招聘版主
  12. python 函数/列表的应用
  13. 一张图告诉你angular2所有知识点
  14. ansible基础-playbooks
  15. iPhone各种机型尺寸、屏幕分辨率
  16. Java 关键字详解(持续更新中)
  17. 第二十三节:Java语言基础-详细讲解函数与数组
  18. 如何把checkbox做成radio一样的单选效果
  19. 浅谈CDQ分治与偏序问题
  20. laravel使用使用 Php Artisan Tinker 实现模型的增删改查

热门文章

  1. Appium+python自动化9-SDK Manager【转载】
  2. Fiddler抓包1-抓firefox上https请求【转载】
  3. 设置电脑(windows)自动关机的方法
  4. git回溯到指定版本
  5. [LOJ6279]数列分块入门 3
  6. 各种计算机编码与base64
  7. RTM CU CTP
  8. python 人工智论
  9. 【IntellJ IDEA】idea启动测试类报错Error running &#39;Test1.test&#39;: Command line is too long. Shorten command line for Test1.test or also for JUnit default configuration.
  10. JavaScript的filter用法