我就是想骗一骗访问量

先Tarjan搞出来所有的强连通分量

正向连边 反向连边 topsort一发  搞出来每个点可以到哪些点 和哪些点可以到这个点

对于每条边 与一下  就是答案

//By SiriusRen
#include <bits/stdc++.h>
using namespace std;
const int N=,M=N*N;
int n,m,T,jy,ans,r=;
int low[N],dfn[N],cnt,stk[N],vis[N],p[N],top;
set<int>s;
struct Edge{
bitset<N>f[N];
int mp[N][N],in[N];
void topsort(){
queue<int>q;
for(int i=;i<=T;i++)for(int j=;j<=T;j++)if(mp[i][j])in[j]++;
for(int i=;i<=T;i++)if(!in[i])q.push(i);
while(!q.empty()){
int t=q.front();q.pop();
for(int v=;v<=T;v++)if(mp[t][v]){
in[v]--,f[v]|=f[t];
if(!in[v])q.push(v);
}
}
}
}e[];
struct Road{int x,y;Road(int X=,int Y=):x(X),y(Y){};}rd[M];
void tarjan(int x){
low[x]=dfn[x]=++cnt,stk[++top]=x;vis[x]=;
for(int v=;v<=n;v++)if(e[].mp[x][v]){
if(!dfn[v])tarjan(v),low[x]=min(low[x],low[v]);
else if(vis[v])low[x]=min(low[x],dfn[v]);
}if(low[x]==dfn[x]){T++;do{jy=stk[top--],vis[jy]=;p[jy]=T;e[].f[T][jy]=e[].f[T][jy]=;}while(jy!=x);}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)scanf("%d%d",&rd[i].x,&rd[i].y),e[].mp[rd[i].x][rd[i].y]=;
for(int i=;i<=n;i++)if(!dfn[i])tarjan(i);
for(int i=;i<=m;i++)if(p[rd[i].x]!=p[rd[i].y])
e[].mp[p[rd[i].x]][p[rd[i].y]]=e[].mp[p[rd[i].y]][p[rd[i].x]]=;
e[].topsort();e[].topsort();
for(int i=;i<=m;i++){
int t=(int)(e[].f[p[rd[i].x]]&e[].f[p[rd[i].y]]).count();
if(ans<t)s.clear(),ans=t,s.insert(i);
else if(ans==t)s.insert(i);
}
printf("%d\n%d\n",ans,(int)s.size());
for(set<int>::iterator it=s.begin();it!=s.end();it++,r++)printf("%d%c",*it,r==s.size()?'\n':' ');
}

BZOJ 4304 tarjan+topsort+bitset的更多相关文章

  1. BZOJ.2208.[JSOI2010]连通数(bitset Tarjan 拓扑)

    题目链接 先缩点,对于scc之间贡献即为szscc[i]*szscc[j] 用f[i][j]表示scci是否能到sccj 拓扑排序,每次把now的f或上to的f 用bitset优化 //63888kb ...

  2. Luogu3119 草鉴定-Tarjan+Topsort

    Solution 简单的$Tarjan$题. 有大佬现成博客 就不写了 → 传送门 Code #include<cstdio> #include<cstring> #inclu ...

  3. 【UVA11324】 The Largest Clique (Tarjan+topsort/记忆化搜索)

    UVA11324 The Largest Clique 题目描述 给你一张有向图 \(G\),求一个结点数最大的结点集,使得该结点集中的任意两个结点 \(u\) 和 \(v\) 满足:要么 \(u\) ...

  4. Tarjan+topsort(DP)【P3387】 [模板]缩点

    Description 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次 ...

  5. [JSOI2010]连通数 (dfs或tarjan或bitset)+bitset学习

    题目描述 输入格式 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. 输出格式 输出一行一个整数,表示该图的连通数. 样例 样 ...

  6. [bzoj 3687]简单题 bitset的运用

    题意 给定一个正整数集,求所有子集算术和的异或和   题解 每次加入一个元素x,用原集合a xor (a<< x) 然后每一个值统计一下 bitset看起来很优越,是一个能位运算的布尔数组 ...

  7. BZOJ 3687: 简单题 bitset

    3687: 简单题 Time Limit: 10 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description 小呆开始研究集合论了,他 ...

  8. bzoj 3687 简单题——bitset

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3687 关于 bitset :https://blog.csdn.net/snowy_smil ...

  9. bzoj 1123 tarjan求割点

    #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...

随机推荐

  1. PAT 1129 Recommendation System

    Recommendation system predicts the preference that a user would give to an item. Now you are asked t ...

  2. spring 学习(二)

    public interface BeanPostProcessor { @Nullable default Object postProcessBeforeInitialization(Object ...

  3. Docker学习总结(18)——阿里超大规模Docker化之路

    12月6-7日,由阿里巴巴集团.阿里巴巴技术发展部.阿里云云栖社区联合主办,以"2016双11技术创新"为主题的阿里巴巴技术论坛上,阿里巴巴研究员林昊分享了阿里超大规模Docker ...

  4. HDU 4923 (贪心+证明)

    Room and Moor Problem Description PM Room defines a sequence A = {A1, A2,..., AN}, each of which is ...

  5. 24、Java并发性和多线程-信号量

    以下内容转自http://ifeve.com/semaphore/: Semaphore(信号量) 是一个线程同步结构,用于在线程间传递信号,以避免出现信号丢失(译者注:下文会具体介绍),或者像锁一样 ...

  6. 人人都是 DBA

    http://www.cnblogs.com/gaochundong/tag/DBA/

  7. JavaScript的原生引用类型

    引用类型是一种数据结构,用于将数据和功能组织在一起,也常称做类.ECMAScript从技术上说是一门面向对象的语言.但它不具备传统的面向对象语言所支持的类和接口等基本结构. Object类型 大多数引 ...

  8. poj 3090 &amp;&amp; poj 2478(法雷级数,欧拉函数)

    http://poj.org/problem?id=3090 法雷级数 法雷级数的递推公式非常easy:f[1] = 2; f[i] = f[i-1]+phi[i]. 该题是法雷级数的变形吧,答案是2 ...

  9. 模板小程序】求小于等于N范围内的质数

    xiaoxi666 联系邮箱: xiaoxi666swap@163.com 博客园 首页 新随笔 联系 订阅 管理 [模板小程序]求小于等于N范围内的质数   1 //筛法求N以内的素数(普通法+优化 ...

  10. 浅析Java开发模式—Model1、Model2和三层

    "解耦"的思想一直是我们倡导的,但在实际项目中怎样去做?这是需要我们去好好思考的.下面以Model1.Model2.三层为切入点,对比下去了解解耦的思想. Model1 使用JSP ...