首页

文章

poj 2816 用pascal 怎么过, 要详细代码,最好附上题解或者解释

发布网友 发布时间:2024-11-08 04:35

我来回答

1个回答

热心网友 时间:2024-11-08 05:08

【强连通tarjan算法】
(这是一种在图论中挺常用的算法,但省队以下的是基本不会考的,LZ需要的话可以百度一下模板以及讲解,实在不理解的话可以自己模拟几遍、、、)
http://www.cnblogs.com/pony1993/archive/2012/08/07/2627344.html
http://www.cnblogs.com/-sunshine/archive/2012/10/04/2711185.html
(以上两个网址包括tarjan算法的具体实现以及本题的解题报告)
----------------------------------------------------------------------------------------------------------------------
【下面附代码】:
var n,m,x,y,z,sum:longint;
s,t,a,b:array[1..50000]of longint;
o,p,q,fa,num,out:array[1..10000]of longint;
f:array[1..10000]of boolean;
//-------------------------------------------------分割线----------------------------------------------------------
function min(x,y:longint):longint;
begin
if x<y then exit(x)
else exit(y);
end;
//-------------------------------------------------分割线----------------------------------------------------------
procere init;
var i,j,k:longint;
begin
readln(n,m);
for k:=1 to m do
begin
readln(i,j);
s[k]:=i;
t[k]:=j;
a[k]:=b[i];
b[i]:=k;
end;
end;
//-------------------------------------------------分割线----------------------------------------------------------
procere work(i:longint);
var j,k:longint;
begin
inc(x);p[i]:=x;q[i]:=x;
inc(y);o[y]:=i;f[i]:=true;
j:=b[i];
while j<>0 do
begin
k:=t[j];
if p[k]=0 then
begin
work(k);
q[i]:=min(q[i],q[k]);
end
else
if(p[k]<p[i])and(f[k])then
q[i]:=min(q[i],p[k]);
j:=a[j];
end;
if p[i]=q[i] then
begin
inc(z);
repeat
inc(num[z]);
k:=o[y];
dec(y);
f[k]:=false;
fa[k]:=z;
until k=i;
end;
end;
//-------------------------------------------------分割线----------------------------------------------------------
procere main;
var i,j,k:longint;
begin
for i:=1 to n do
if q[i]=0 then
work(i);
for i:=1 to n do
begin
j:=b[i];
while j<>0 do
begin
k:=t[j];
if fa[i]<>fa[k] then
inc(out[fa[i]]);
j:=a[j];
end;
end;
for i:=1 to z do
if out[i]=0 then
inc(sum);
if sum<>1 then writeln(0)
else
for i:=1 to z do
if out[i]=0 then
begin
writeln(num[i]);
break;
end;
end;
//-------------------------------------------------分割线----------------------------------------------------------
begin
init;
main;
end.
2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 库存过期香精 猎狐点卡平台经营范围 电影代理靠谱吗 兄弟三人,有什么好的QQ网名 租赁合同书范本简单版 19 春夏养阳,秋冬养阴 学会逆向思维 第三章 图论 No.9有向图的强连通与半连通分量 tarjan算法和数据结构 图的割点和割边 SketchUp古建教程——斗拱 斗拱所有升的尺寸是一样的吗 斗拱的尺寸与做法 南昌人吃泥鳅不pu开泥鳅肚子的吗? 请问南昌一共有几家大型的农贸批发市场, 哪里的泥鳅最好 泥鳅市场价多少钱一斤 沙鳅的价格为什么贵 淘宝洋淘秀在哪里发布?洋淘秀入口在哪? 千牛互动服务窗怎么用?有哪些注意事项? 淘宝秋新短视频怎么参加?注意事项有哪些? 猜你喜欢商家素材优化商家参与SOP 合肥哪个区发展好 中考,安徽省定远一中达标分数线,求真实 我女朋友要过生日了,她让我送她酸奶,另外让我每天为她叠一个飞机,等... dye one's hair blue和 color on'e hair blue有什么区别? 1=1,2+3+4=9,3+4+5+6+7=25,4+5+6+7+8+9+10=49…照此规律,第n个等式为... acm考什么 中国越被侵略,领土越大,这话有道理吗 QQ显示手机在线和4g在线有什么区别 家用电脑装配监控需要下载什么软? 摄像头录像软件推荐,让你看清每个细节! 新买的冰箱多久换雪种 冰箱新购几年换雪种 房产所有权确权纠纷 姐弟买房,房产证是两人名字,产权各一半,弟出全资,姐起诉要一半房款,法 ... 房子是两兄弟的,另一个兄弟偷偷去办房产证都办自己名下,那另一个兄弟... 两兄弟以前合资造房,用其中一人姓名办了房产证,现在需要分开该怎么办... 双色球买24个红球多少钱 双色球可以只买红球不买篮球吗 双色球复式买26个红号加一个兰号多少钱 2011金鸡百花电影节赵薇唱的主题歌是什么 手机财付通明细怎么查 怎么查到财付通里的交易记录? irqlnotlessorequal蓝屏如何处理_处理irqlnotlessorequal蓝屏有哪些方法... 朗润的解释是什么? 朗润造句子怎么造朗润造句 把下列词语分别造句;朗润 酝酿 卖弄
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com