在某教練的強迫之下,我乙個蒟蒻居然又出題了!!!出題了!!!(資料太水別找我qwq)
好的,jl說好的一題100快拿來
我們有乙個有向圖,每條邊權值為1,我們要在上面找一條神奇的道路滿足:
1.神奇的道路上的所有點的出邊所指向的點都直接或間接與終點連通。
2.在滿足條件1的情況下使路徑最短。
3.該路徑是從起點到終點的路徑
垃圾出題人表示找不到這條路徑,所以希望你幫忙qwq
第一行有兩個用乙個空格隔開的整數 n 和 m,表示圖有 n個點和 m 條邊。
接下來的 m 行每行 2 個整數 x,y,之間用乙個空格隔開,表示有一條邊從點 x 指向點y。
最後一行有兩個用乙個空格隔開的整數 s, t,表示起點為 s,終點為 t。
輸出只有一行,包含乙個整數,表示滿足題目描述的最短路徑的長度。如果這樣的路徑不存在,輸出「orz」(不含雙引號)
3 2
1 2
2 1
1 3
orz
7 8
5 23 1
5 31 6
3 66 7
2 72 4
5 7
3
對於樣例一: 起點1與終點3不連通,所以滿足題目描述的路徑不存在,故輸出orz。
30%保證是連通圖
100% 0早上毒瘤出題人告訴我跑最長路有60分。。。。。。
#include #include#include
using
namespace
std;
int tot,total,n,m,ss,tt,l[500050],r[500050],pre[500050],last[10050],other[500050
];int que[10050],d[10050
];bool judge[10050],vis[10050],point[10050
];inline
intread()
ch=getchar();
}while(ch>='
0'&&ch<='9'
)
return s*w;
}void add(int u,int
v) void bfs(int
x) }
}}void spfa(int
x) }}}
}int
main()
ss=read();
tt=read();
for (int i=1; i<=m; i++) add(r[i],l[i]);
bfs(tt);
if (!point[ss])
for (int i=1; i<=n; i++)
}memset(que,
0,sizeof
que);
memset(vis,
0,sizeof
vis);
memset(last,
0,sizeof
last);
tot=0
;
for (int i=1; i<=m; i++) add(l[i],r[i]);
spfa(ss);
printf("%d
",d[tt]);
return0;
}
尋找道路(NOIP2014)神奇之題。。
原題傳送門 這道題嘛。首先根據題目,我們要先知道哪些點能夠到達終點。反向bfs 然後我們再求最短路的途中,必須隨時判斷周圍的點是否被第一次bfs標記過。所以再來一次bfs。陣列記得清零,不然會炸。下面貼 include include include using namespace std int ...
神奇的中醫!神奇的文化!
本草備要 中載 王荊公患偏頭痛,搗萊服汁,仰臥,左痛注右鼻,右痛注左鼻,或兩鼻齊注,數十年患,二註而愈。其中所說萊菔汁就是蘿蔔汁。上邊這段話好人的部落格上都有,但是不知道有幾個人嘗試過,我因長期患偏頭疼終無良方,今天下定決心試上一試,據說中西醫對 頭疼均沒有什麼特效藥物,於是我的偏頭疼也伴隨我十幾年...
神奇的食物
跟男朋友吵架 在公司跟上司鬧矛盾 哎,煩啊 每天都要唉聲嘆氣 愁眉苦臉過日子的你,終於在有一天發現自己雪上加霜,得了慢性頭痛 消化不良 失眠症等眾多毛病。不過不用再發愁了,你馬上就可以看到能夠帶你遠離這些煩惱 幫你治好身心的保護神了!那就是平時就隱身在我們身邊的一些不起眼的食物!心生煩躁時 你說在跟...