給出乙個n個頂點m條邊的無向無權圖,頂點編號為1~n。問從頂點1開始,到其他每個點的最短路有幾條。
大水題 , 為了備忘 , 還是記下來吧 .
不推方程了,,,,in code .
1//2dijkstra & spfa*dijkstra:
4 #include5 #include6 #include7 #include8
using
namespace
std;
9const
int inf=2147483647;10
const
int maxn=1e6+1,mod=100003;11
intsp[maxn],cnt[maxn];
12struct
edge
1316
};17 vectore;
18 vectorg[maxn];
19struct
heapnode
2023
bool
operator
< (const heapnode& r) const
24};
25 priority_queueq;
26 inline int
read()
2730
while(c>='
0'&&c<='9')
31return f*x;32}
33void insert(int
from,int to,int
dis)
3438
intmain()
3947
for(int i=0;i<=n+1;i++)sp[i]=inf;
48 sp[1]=0;cnt[1]=1
;49 q.push(heapnode(1,sp[1
]));
50while(!q.empty())
5164
else
if(sp[it.to]==sp[a.u]+1
)65 cnt[it.to]=(cnt[it.to]+cnt[a.u])%mod; 66}
67}68for(int i=1;i<=n;i++)
69if(sp[i]"
%d%c
",cnt[i],10
);70
else printf("
%d%c
",0,10
);71
return0;
72}73//
*spfa:
74//
#include
75//
#include
76//
#include
77//
#include
78//
using namespace std;
79//
const int n=1e6+1,m=2e6+1;
80//
const int mod=100003,inf=1e7+1,dis=1;
81//
int h[n],cnt[n],sp[n],ect=0;
82//
bool vis[n];
83//
struct graph
86//
};87
//graph g[m];
88//
queueq;
89//
90//
void addedge(int from,int to)
91//
97//
inline int read()
98//
101//
while(c>='0'&&c<='9')
102//
return s*f;
103//
}104
//int main()
105//
115//
int now=0;
116//
sp[begin]=0;
117//
q.push(begin);
118//
vis[begin]=true;
119//
cnt[begin]=1;
120//
while(!q.empty())
121//
131//
else if(sp[now]+dis132
//140//}
141//
}142
//for(int i=1;i<=n;i++)
143//
printf("%d\n",cnt[i]);
144//
return 0;
145//
}
洛谷1144 最短路計數
題目描述 給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入輸出格式 輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每...
洛谷 1144 模板 最短路計數
問題描述 給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出 輸出包括n行,每行乙個非負整數,第i行...
spfa dp 洛谷1144 最短路計數
給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每行乙個非負整數,第i行輸...