日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

usaco Network of Schools

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 usaco Network of Schools 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

就是百度百科上的tarjan算法他把縮點什么的都總結好了。

/*
ID:jinbo wu
TASK:schlnet
LANG:C++
*/ 
#include<bits/stdc++.h>
using namespace std;
vector<int> g[110];
stack<int> s;
int x[110*100],y[110*100];
bool instack[110];
int belong[110],dfn[110],low[110];
int t=1,cnt;
int in[110],out[110];
void tarjan(int i)
{int j;dfn[i]=low[i]=t++;instack[i]=true;s.push(i);for(int e=0;e<g[i].size();e++){j=g[i][e];if(dfn[j]==0){tarjan(j);low[i]=min(low[j],low[i]);}else{if(instack[j]){low[i]=min(low[i],dfn[j]);}}}if(dfn[i]==low[i]){cnt++;do{j=s.top();s.pop();instack[j]=false;belong[j]=cnt;}while(j!=i);}}
int main()
{freopen("schlnet.in","r",stdin);freopen("schlnet.out","w",stdout);int n,v;cin>>n;int m=0;for(int i=1;i<=n;i++){while(cin>>v,v){g[i].push_back(v);x[m]=i;y[m++]=v;}}	for(int i=1;i<=n;i++){if(!dfn[i])tarjan(i);}for(int i=0;i<m;i++){int a=belong[x[i]];int b=belong[y[i]];if(a!=b){out[a]++;in[b]++;}}int ans1=0;int ans2=0;for(int i=1;i<=cnt;i++){if(out[i]==0)ans1++;if(in[i]==0)ans2++;}if(cnt==1){cout<<1<<endl<<0<<endl;}else{cout<<ans2<<endl<<max(ans1,ans2)<<endl;}
} 


總結

以上是生活随笔為你收集整理的usaco Network of Schools的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。