C++ P1726 上白泽慧音
题目:P1726 上白泽慧音
学习了强联通分量(scc),找了个裸题,用tarjan算法AC了,Dalao勿喷啊! -_-||
# include <iostream>
# include <cstring>
# include <vector>
# include <stack>
using namespace std;
int n, m, scctot, scc[5010], low[5010], dfn[5010], dfntot, maxn, num;
vector<int> map[5010];
stack<int> s;
void tarjan(int u) {low[u] = dfn[u] = ++dfntot; // 访问步数,后面会不断更新low // low就是u或u的子树能够追溯到的最早的栈中节点的次序号s.push(u); // u结点入栈,后面用来找一个强连通分量 for(int i = 0; i < map[u].size(); i++) {int v = map[u][i];if(dfn[v] == 0) { // 当v没有访问过时,再tarjan(v),更新low tarjan(v);low[u] = min(low[u], low[v]);} else if(scc[v] == 0) low[u] = min(low[u], dfn[v]);//当v不在某个强连通分量时,再更新low }if(low[u] == dfn[u]) {scctot++; // 强连通分量计数(第几个) int x = -1, tot = 0; // tot,这个scc有几个节点 while(x != u) { // 头不等于尾时(中间的结点就是一个强连通分量的节点) if(++tot > maxn) maxn = tot, num = scctot; // 主要保存哪个scc中的scctot最多(num) x = s.top();s.pop();scc[x] = scctot; // 在一个scc中的所有节点都是第scctot个 }}
}
int main() {int u, v, t;cin >> n >> m;while(m--) {cin >> u >> v >> t;map[u].push_back(v);if(t == 2) map[v].push_back(u);}for(int i = 1; i <= n; i++) if(dfn[i] == 0) tarjan(i); //在没找过的节点再找下去 cout << maxn << endl;for(int i = 1; i <= n; i++) if(scc[i] == num) cout << i << " "; // 找到num,输出 return 0;
}
C++ P1726 上白泽慧音相关推荐
- 洛谷 P1726 上白泽慧音
洛谷 P1726 上白泽慧音 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个 ...
- 【tarjan强连通分量】洛谷P1726 上白泽慧音
[tarjan强连通分量]洛谷P1726 上白泽慧音 题目传送门 妥妥的强连通模板啊(详细解释戳这里) #include <bits/stdc++.h> #define MAXN 5005 ...
- P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- [Tarjan] 洛谷 P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- 洛谷P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音
http://codevs.cn/problem/1332/ || https://www.luogu.org/problem/show?pid=1726#sub 时间限制: 1 s 空间限制: ...
- 【Luogu】 P1726 上白泽慧音
这个题目名--感觉--很-- 很裸的一个tarjan吧-- 不说了,上代码(代码是谁) #include <bits/stdc++.h> using namespace std; vect ...
- [P1726]上白泽慧音
原题链接 直到今天 我才知道 幻想乡还有这么一位 看起来很可爱的 老师 普通的寻找强连通分量 普通的统计最大 普通的输出 除了我背错板子了以外 一切都是那么完美 今天的幻想乡 也是和平的一天呢 #in ...
- 上白泽慧音(tarjan,图的染色)
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
最新文章
- JDBC常见面试题集锦(二)
- CSS中属性的书写顺序
- jsch设置代理_Java使用JSch组件实现SSH协议代理服务
- communication for making more gains or simply a leisure?
- Core Data(3)- 使用绑定
- 面试系列12 redis和memcached有什么区别
- 清原高中2021高考成绩查询,2021年抚顺高考状元是谁分数多少分,历年抚顺高考状元名单...
- 应用内购买(IAP)各类型在服务端的验证规则
- 失物招领小程序_通知 | 保卫部拟设置失物招领处
- iOS音频的后台播放总结
- linux pxe 博客,pxe无人值守linux系统安装
- struts+spring action应配置为scope=prototype
- SpringCloud教程汇总
- 经典有源滤波电路(赛伦-凯滤波器)
- 5g与计算机网络有什么关系,5G网络是什么意思 5G和4G网络有什么区别?
- html td 跨两个,【单选题】在HTML中,td标签的( )属性用于创建跨多个行的单元格。...
- 易语言html加密解密,易语言实现-JScript.Encode加密解密(一)
- 微信聊天防封 亲测 百分之95有效 【附源码】
- 获取手机电池百分比和电池容量方法
- 设计模式 | 中介者模式(详解)