本题让求有多少点 是图中所有点都可到达改点的 定理:在一个有向图中,如果有一个节点的出度为0,并且仅有一个这样的点,则该图中所有的点都可到达该点 先求出图的强连通分量,然后将每个强连通分量化为一个层次,求是否存在一个强连通分量,该分量的出度为一,并且仅有一个这样的分量,则该连通分量中的点都是满足条件的,输出该连通分量的点的个数;如果不存在,则输出0; include<stdio.h> include<string.h> include<algorithm> include<stack> include<stdlib.h&gt...

for(inti=0;i<n;i)//图可能是不连通的,因此要表里每个点 if(!dfn[i]) tarjan(i); voidtarjan(intu) { inti,v; dfn[u]=low[u]=ntime; z.push(u); f[u]=1; for(i=0;i<q[u].size();i){ v=q[u][i]; if(!dfn[v]){ tarjan(v); low[u]=min(low[u],low[v]); } elseif(f[v]1) low[u]=min(low[u],dfn[v]); } ...

  VrZI4Uwu8BR1   2023年11月02日   100   0   0 i++g++i++模板g++模板

归并排序的模板。 能求逆序。。。。 include<stdio.h> include<string.h> intn; longlonga[500005],b[500005]; longlongsum; voidmerge(intl,intm,intr) { inti=l,j=m+1,k=0; while(i<=m&&j<=r) { if(a[i]<=a[j]) b[k]=a[i]; else{ b[k]=a[j]; sum+=m-i+1;//这个就能求逆序了。。自己理解一下。。 } } ...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~