HDU 4738 Caocao's Bridges(找割边)
2024-09-08 05:41:52
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;
}
最新文章
- weblogic启动受管服务器报错Authentication for user weblogic denied (weblogic 11g 域账号密码不生效的解决方法)
- Windows 10系统更换Windows 7系统磁盘分区注意事项一
- 网页播放器(jsp、js)
- [BZOJ1941][Sdoi2010]Hide and Seek
- 解决NetworkOnMainThreadException
- 从scanf的学习接口设计
- Quartz的任务的临时启动和暂停和恢复
- Flash AIR14导出ipa到Mac上的iOS模拟器测试
- Boolean类源码分析
- 查看linux系统状态
- iSwifting社区【www.iSwifting.com】招聘版主
- python 函数/列表的应用
- 一张图告诉你angular2所有知识点
- ansible基础-playbooks
- iPhone各种机型尺寸、屏幕分辨率
- Java 关键字详解(持续更新中)
- 第二十三节:Java语言基础-详细讲解函数与数组
- 如何把checkbox做成radio一样的单选效果
- 浅谈CDQ分治与偏序问题
- laravel使用使用 Php Artisan Tinker 实现模型的增删改查
热门文章
- Appium+python自动化9-SDK Manager【转载】
- Fiddler抓包1-抓firefox上https请求【转载】
- 设置电脑(windows)自动关机的方法
- git回溯到指定版本
- [LOJ6279]数列分块入门 3
- 各种计算机编码与base64
- RTM CU CTP
- python 人工智论
- 【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.
- JavaScript的filter用法