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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ 1051 受欢迎的牛(Tarjan缩点)

發(fā)布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1051 受欢迎的牛(Tarjan缩点) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1051: [HAOI2006]受歡迎的牛

Time Limit:?10 Sec??Memory Limit:?162 MB
Submit:?4573??Solved:?2428
[Submit][Status][Discuss]

Description

每一頭牛的愿望就是變成一頭最受歡迎的牛。現在有N頭牛,給你M對整數(A,B),表示牛A認為牛B受歡迎。 這 種關系是具有傳遞性的,如果A認為B受歡迎,B認為C受歡迎,那么牛A也認為牛C受歡迎。你的任務是求出有多少頭 牛被所有的牛認為是受歡迎的。

Input

第一行兩個數N,M。 接下來M行,每行兩個數A,B,意思是A認為B是受歡迎的(給出的信息有可能重復,即有可 能出現多個A,B)

Output

  一個數,即有多少頭牛被所有的牛認為是受歡迎的。

Sample Input

3 3
1 2
2 1
2 3

Sample Output

1

HINT

?

100%的數據N<=10000,M<=50000

?

?

題目鏈接:BZOJ 1051

做法:Tarjan縮點后,由于縮點后必定是一個DAG或者叫有向無環(huán)圖,因此應該至少存在一個出度為0的縮點和一個入度為0的縮點,這題就是要統(tǒng)計出度為0的分量個數

若統(tǒng)計的數量有為1個,則說明全在一個連通分量內,即任意兩點互相可達,所有牛都是受歡迎的;若大于1,則說明至少一個連通分量中的牛的數量少于n-1即歡迎不能直接或間接地全部集中在至少一頭牛身上,就沒有牛受歡迎了

代碼:

#include <stdio.h> #include <bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f #define CLR(arr,val) memset(arr,val,sizeof(arr)) #define LC(x) (x<<1) #define RC(x) ((x<<1)+1) #define MID(x,y) ((x+y)>>1) typedef pair<int,int> pii; typedef long long LL; const double PI=acos(-1.0); const int N=10010; const int M=50010;struct edge {int to;int pre; }; edge E[M]; int head[N],tot; int dfn[N],low[N],st[N],belong[N],ins[N],sc,ts,top,scnum[N]; int out[N];void init() {CLR(head,-1);CLR(low,0);CLR(dfn,-1);CLR(belong,0);CLR(ins,0);sc=ts=top=0;CLR(scnum,0);CLR(out,0); } inline void add(int s,int t) {E[tot].to=t;E[tot].pre=head[s];head[s]=tot++; } void Tarjan(int u) {dfn[u]=low[u]=++ts;ins[u]=1;st[top++]=u;int v;for (int i=head[u]; ~i; i=E[i].pre){v=E[i].to;if(dfn[v]==-1){Tarjan(v);if(low[v]<low[u])low[u]=low[v];}else if(ins[v]){if(dfn[v]<low[u])low[u]=dfn[v];}}if(dfn[u]==low[u]){++sc;do{v=st[--top];ins[v]=0;belong[v]=sc;++scnum[belong[v]];}while (u!=v);} } int main(void) {int n,m,a,b,i,j,u,v;while (~scanf("%d%d",&n,&m)){init();for (i=0; i<m; ++i){scanf("%d%d",&a,&b);add(a,b);}for (i=1; i<=n; ++i)if(dfn[i]==-1)Tarjan(i);for (u=1; u<=n; ++u){for (j=head[u]; ~j; j=E[j].pre){v=E[j].to;if(belong[v]==belong[u])continue;++out[belong[u]];}}int zero_out=0;int scindx=-1;for (i=1; i<=sc; ++i){if(!out[i]){++zero_out;scindx=i;}}zero_out>1?puts("0"):printf("%d\n",scnum[scindx]);}return 0; }

轉載于:https://www.cnblogs.com/Blackops/p/5991811.html

總結

以上是生活随笔為你收集整理的BZOJ 1051 受欢迎的牛(Tarjan缩点)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人久久精品 | 午夜啪啪网| 色就是色亚洲色图 | 5个黑人躁我一个视频 | av天堂一区二区 | 香蕉手机网| 亚洲欧美久久久 | 两根大肉大捧一进一出好爽视频 | 天堂网色| 中文字幕――色哟哟 | 操操操操操操操操操 | 久久天天躁狠狠躁夜夜躁2014 | 波多野结衣欧美 | 欧美人妻一区二区 | 男人添女人荫蒂国产 | 日韩免费av在线 | 亚洲香蕉中文网 | 精品无码一级毛片免费 | 视频一区二区中文字幕 | 黑丝一区二区三区 | 日韩精品免费在线 | 爽爽影院在线免费观看 | 欧美视频在线一区二区三区 | 懂色av懂色av粉嫩av分享吧 | 国产精品乱子伦 | 波多野结衣一二区 | 在线免费看黄网站 | 日韩av一区二区三区在线观看 | 成人免费高清在线观看 | 都市激情第一页 | www欧美色 | 人人操日日干 | av东方在线 | 亚洲精品18p| 成人黄色在线网站 | 五月天婷婷伊人 | 国产精品不卡av | 成年人午夜网站 | 日本不卡视频一区 | 午夜在线免费观看视频 | 羞羞色视频 | 边打电话边做 | 国产精品久久久99 | 淫片一级国产 | 特级西西444www | 成人性生生活性生交3 | 国产激情精品一区二区三区 | 在线播放一区二区三区 | 国产高清一级片 | 91精品国产综合久久久蜜臀 | 午夜久久久久 | 浓精喷进老师黑色丝袜在线观看 | 无码一区二区三区在线 | cao在线视频| 精品久草 | 色小说综合 | 看av免费毛片手机播放 | 久久久午夜视频 | 国产午夜福利视频在线观看 | 高跟鞋和丝袜猛烈xxxxxx | 欧美激情亚洲激情 | 少妇精品一区二区三区 | 浮妇高潮喷白浆视频 | 亚洲理论中文字幕 | 欧美在线www | 18无码粉嫩小泬无套在线观看 | 韩国成人在线视频 | 成人黄色电影网址 | 九九精品视频免费 | 国产最新视频在线 | 亚洲社区在线观看 | 中文字幕亚洲一区二区三区 | 亚洲最大成人av | 日韩三级在线播放 | 看黄色网址 | 国产精品久久久久永久免费看 | 久久久久久久久久av | 中文字幕永久免费 | 外国黄色录像 | 久久国产综合 | 香蕉视频在线看 | 白丝女仆被免费网站 | 第一毛片 | 男生插女生网站 | 性做久久久久久久久 | 波多野结衣欲乱上班族 | 秋霞精品| 天堂中文字幕免费一区 | 国产精品a级| 99国内精品 | 一区二区三区免费在线视频 | 小视频在线观看 | 男人疯狂高潮呻吟视频 | 天天干干干干干 | av在线网页| 五月花成人网 | 青草福利| 国产成人97精品免费看片 | 99ri在线观看 |