poj 3464
問最短路的條數+比最短路權值大 1 的條數
做法 比較一下次短路和最短路的值 若次短路恰好比最短路大1,答案為最短路+次短路條數,否則答案就是最短路條數
1 #include2view codeconst
int inf=0x3f3f3f3f;3
class count_short_path e[me];
11int n,le,head[mv],cnt[mv][2
],i,j,k,u,v,tmp,flag;
12 typec dist[mv][2
],w;
13bool used[mv][2
];14
public:15
void init(int tn)
20void add(int u,int
v,typec w)
26void solve(int s) 33}
34 dist[s][0]=0
;35 cnt[s][0]=1;36
for(k=1; k2; k++) else
if(!used[j][1]&&tmp>dist[j][1
]) 48}49
if(tmp==inf) break
;50 used[u][flag]=1;51
for(i=head[u]; ~i; i=e[i].next)
60else
if(tmp+w==dist[v][0
]) 63
else
if(tmp+w1
]) 67
else
if(tmp+w==dist[v][1
]) 70}71
}72}73 typec getdist(int id,int flag)
76int getcnt(int id,int flag)
79} g;
80int
main()
90 scanf("
%d%d
",&u,&v);
91g.solve(u);
92int ans=g.getcnt(v,0
);93
if(g.getdist(v,0)==g.getdist(v,1)-1) ans+=g.getcnt(v,1
);94 printf("
%d\n
",ans);95}
96}97return0;
98 }
hdu
1 #include2 #include3view codeusing
namespace
std;
4const
int inf=0x3f3f3f3f;5
class count_short_path e[me];
13int n,le,head[mv],cnt[mv][2
],i,j,k,u,v,tmp,flag;
14 typec dist[mv][2
],w;
15bool used[mv][2
];16
public:17
void init(int tn)
22void add(int u,int
v,typec w)
28void solve(int s) 35}
36 dist[s][0]=0
;37 cnt[s][0]=1;38
for(k=1; k2; k++) else
if(!used[j][1]&&tmp>dist[j][1
]) 50}51
if(tmp==inf) break
;52 used[u][flag]=1;53
for(i=head[u]; ~i; i=e[i].next)
62else
if(tmp+w==dist[v][0
]) 65
else
if(tmp+w1
]) 69
else
if(tmp+w==dist[v][1
]) 72}73
}74}75 typec getdist(int id,int flag)
78int getcnt(int id,int flag)
81} g;
82int
main()
90g.solve(s);
91 printf("
%d %d\n
",g.getdist(e,1),g.getcnt(e,1
));92}93
return0;
94 }
最短路計數,次短路計數
acwing 1134.最短路計數 bfs 每個點只出隊一次,且入隊一次 dijkstra 每個點第一次出隊的序列一定滿足拓撲序 bellman ford spfa 出隊的時候都不一定是滿足最小,每個點可能出隊多次,有可能更新前面已經出隊的點,不具備拓撲序 但是要用 spfa 求最短路徑數,也是可以...
最短路計數
乙個無向圖上,沒有自環,所有邊的權值均為1,對於乙個點對 a,b 我們要把所有a與b之間所有最短路上的點的總個數輸出。總數 方程 if dis k map k,j dis j then inc dis k 所有最短路經過的點數之和 先求出floyd,然後 if dis i,k dis k,j dis...
最短路計數
題目描述 給出乙個nn個頂點mm條邊的無向無權圖,頂點編號為1 n1 n。問從頂點11開始,到其他每個點的最短路有幾條。輸入輸出格式 輸入格式 第一行包含22個正整數n,mn,m,為圖的頂點數與邊數。接下來mm行,每行22個正整數x,yx,y,表示有一條頂點xx連向頂點yy的邊,請注意可能有自環與重...