題意:
有n只奶牛,奶牛有自己認為最受歡迎的奶牛。奶牛們的這種「認為」是單向可傳遞的,當a認為b最受歡迎(b不一定認為a最受歡迎),且b認為c最受歡迎時,a一定也認為c最受歡迎。
現在給出m對這樣的「認為...」的關係,問有多少只奶牛被除其本身以外的所有奶牛關注。
思路:既然有單向傳遞關係,那麼關係圖可能就形成了環,乙個環內的奶牛互相認為。如果把這些環用乙個點代替的話,建反圖,就成了乙個有向無環圖了,直接遍歷求出入度為0的點有多少個子節點就可以了。
#include#include#includeusing namespace std;
const int n=10010;
int low[n],dfs[n],ans,idx,cont[n],head[n],num,indep[n],belong[n],sum;
bool ins[n];
stackq;
struct edge
e[n*10];
void addedge(int x,int y)
void tarjan(int u)//縮點
else if(ins[v]==1)
low[u]=low[u]>dfs[v]?dfs[v]:low[u];
} if(dfs[u]==low[u])
while(v!=u);
ans++; }}
int dfs(int u)
return temp+cont[u];//子節點+自己環內的所有點
}int main()
{ int i,n,m,x,y;
while(scanf("%d%d",&n,&m)!=-1)
{ memset(head,-1,sizeof(head));
num=0;ans=idx=0;
for(i=0;i
POJ 2186 強連通分量
比較簡單吧。套模板。gabow include cstdlib include cctype include cstring include cstdio include cmath include algorithm include vector include string include io...
Poj 2186 強連通分量
題目大意 分析題解 個人 view code 1 10180085 perseawe 2186 accepted 1424k 79ms pascal 2645b 2012 05 10 19 54 27 23 var 4 n,m,tot,numofblocks,time,top longint 5 d...
poj2186強連通分量
這題。做了半天,倒是讓我更加了解了強連通分量,是我的第二道強連通。石建讓我做一下這道題,我用模板再變形,改了很久之後,能給出的樣例都過了。discussion上的樣例都過了,倒是上面n多人說資料沒過ac了。你讓我們這資料過了沒ac的生活如何自理。先放著,哪天有思路再來搞。重新做了一遍,發現之前的思路...