自行車賽在乙個很大的地方舉行,有n
nn個鎮,用1
11到n
nn編號,鎮與鎮之間有m
mm條單行道相連,起點設在鎮1
11,終點設在鎮222。
問從起點到終點一共有多少種不同的路線。兩條路線只要不使用完全相同的道路就被認為是不同的。
很容易發現1
11到2
22的路線中,只要有環,則為inf
infin
f。(但實際上這道題有環但並沒有inf
infin
f這個答案)。
正解是乙個tar
ja
ntarjan
tarjan
縮點後,拓撲排序即可。
但既然這裡沒有inf
infin
f,那就偷點懶。直接dfs
dfsdf
s也可以。
#include#define m 1000000000
#define ll long long
using namespace std;
ll n,m;
ll a[10005];
bool flag;
queueq;
int ls[10005],cnt;
struct a
e[100005];
void add(int x,int y)
ll dfs(ll x)
return a[x];
}int main()
memset(a,-1,sizeof(a));a[1]=1;
dfs(2);
if(flag) printf("%09d",a[2]);
else printf("%d",a[2]);
}
JZOJ 1238 自行車比賽
description 自行車賽在乙個很大的地方舉行,有n個鎮,用1到n編號,鎮與鎮之間有m條單行道相連,起點設在鎮1,終點設在鎮2。問從起點到終點一共有多少種不同的路線。兩條路線只要不使用完全相同的道路就被認為是不同的。input 第一行兩個整數 n和m 1 n 10000,1 m 100000 ...
卸貨自行車
以下是文章主要內容 我第一次騎yuba supermarche載貨自行車的時候,它比起我那輛輕盈敏捷的汽車感覺就像是只笨拙的怪獸。但在舊金山騎了幾個星期之後,我顯然看到了城市交通的未來。你可以將載貨自行車看作是輕型的多用途運載車,可以用它來說送小孩上學,可以用它來裝載食品雜貨,也可以用它來將在好市多...
Vijos P1988 自行車比賽(treap)
思路 如果我們判斷第i個人是否能第一,只需要把盡量小的分值給分數最大的人,如果有人超過了他,就不能得第一。我們可以把n個人排序,讓2 n個人分別加上n 1 1,用treap維護最大值。轉移到下乙個人的時候,只需要把下乙個人的加分加到當前這個人上就行了。ps 用treap的原因是set被卡了。吐槽 s...