Luogu P1726 上白泽慧音
这显然是一道求强连通分量(SCC)的题目。
只要你正常,都知道应该写Tarjan。
然后(假装会写Tarjan),其实我当然不会。但是求SCC还有另一个算法。复杂度和Tarjan一样,只不过常数大了点而且不为人所知而已。
蓝书和挑战程序竞赛上都有这个算法,好像叫Kosaraju。是不是很拽的感觉。
具体的算法可以参照我的博客另一篇文章。重点是这道题就是SCC模板题(不敢相信竟然10分钟一次A了)
CODE
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int N=;
vector <int> a[N],b[N],s;
int f[N],i,n,m,x,y,z,ans,num,c[N],tot,t[N];
inline void read(int &x)
{
x=; char ch=getchar();
while (ch<''||ch>'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
}
inline void dfs(int k)
{
f[k]=;
for (int i=;i<a[k].size();++i)
if (f[a[k][i]]) dfs(a[k][i]);
s.push_back(k);
}
inline void rdfs(int k)
{
f[k]=;
c[k]=tot;
t[tot]++;
for (int i=;i<b[k].size();++i)
if (f[b[k][i]]) rdfs(b[k][i]);
}
int main()
{
read(n); read(m);
for (i=;i<=m;++i)
{
read(x); read(y); read(z);
if (z==)
{
a[x].push_back(y);
b[y].push_back(x);
} else
{
a[x].push_back(y); a[y].push_back(x);
b[x].push_back(y); b[y].push_back(x);
}
}
memset(f,true,sizeof(f));
for (i=;i<=n;++i)
if (f[i]) dfs(i);
memset(f,true,sizeof(f));
for (i=s.size()-;i;--i)
if (f[s[i]]) ++tot,rdfs(s[i]);
for (i=;i<=tot;++i)
if (t[i]>ans) ans=t[i],num=i;
printf("%d\n",ans);
for (i=;i<=n;++i)
if (c[i]==num) printf("%d ",i);
return ;
}
Luogu P1726 上白泽慧音的更多相关文章
- 【luogu P1726 上白泽慧音】 题解
题目链接:https://www.luogu.org/problemnew/show/P1726 菜 #include <stack> #include <cstdio> #i ...
- 洛谷P1726 上白泽慧音(Tarjan强连通分量)
P1726 上白泽慧音 题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村 ...
- P1726 上白泽慧音 tarjan 模板
P1726 上白泽慧音 这是一道用tarjan做的模板,要求找到有向图中最大的联通块. #include <algorithm> #include <iterator> #in ...
- 洛谷P1726 上白泽慧音 [Tarjan]
题目传送门 上白泽慧音 题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村 ...
- CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音
http://codevs.cn/problem/1332/|| https://www.luogu.org/problem/show?pid=1726#sub 时间限制: 1 s 空间限制: 1 ...
- 洛谷P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- 洛谷 P1726 上白泽慧音
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
- P1726 上白泽慧音(0分)
题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...
随机推荐
- EditText的焦点问题
问题说明: activity中有个三级菜单,三个ListView嵌套,最后一层ListView的item中有EditText控件.要求EditText不仅能手动输入,还能点击加减进行改变.EditTe ...
- 安装google,多试试
对于谷歌Chrome32位版本,使用如下链接: wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.de ...
- Intellij IDEA去除@Autowired下划线红色提示
Intellij IDEA通过@Autowired注入的对象,在不改变配置的情况下一直有红色下划线,虽然不影响运行,但是跟小Alan一样有强迫症的肯定受不鸟. 那么怎么去除它呢? 解决方式:改变@Au ...
- aop 拦截含有特定注解的类
1.功能点:使用aop拦截含有自定义注解的类 1.自定义注解 package com.zhuanche.common.dingdingsync; import java.lang.annotation ...
- Oracle EBS INV 挑库发放物料搬运单
create or replace PROCEDURE XX_TRANSACT_MO_LINE AS -- Common Declarations l_api_version NUMBER := 1. ...
- Oracle EBS AP 发票放弃行
-- purpose: 应付发票放弃发票行 -- 12.2.6 环境 -- author:jenrry create_date: 2017-06-07 declare l_dummy_msg VARC ...
- SQL Server 从2000复制数据到2008及以上版本的一种方法
1.通过Linked Servers 执行sql出现错误提示,无法执行复制数据操作. sql: insert into tb_User select from [**.**.*.**].DB.dbo. ...
- Windows7系统中怎么Ping端口?利用telnet命令Ping 端口的方法
telnet www.baidu.com 80 端口打开的情况下,链接成功,则进入Telnet页面(全黑的),证明端口可用.
- MySQL-死锁查询
1.查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill id 2.查询进程 show processlist 补 ...
- scss 使用
SCSS 常用功能 https://www.cnblogs.com/guangzan/p/10547335.html 定义变量$my-color: #666; //定义变量$my-heihgt: 10 ...