1499 最短路计数
由题面可是用来统计最短路的个数
对于最短路径算法常用的就是dijkstra和SPFA,但是总所周知,SPFA有的时候会很废物
我用两种做法,一个是SPFA,一个是dijkstra+堆优化
SPFA
关于SPFA,他死了
不过在这道题里还是可以抢救他一下的
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
const int maxn=0x7fffffff;
int n,m,x,y;
int u,v;
int vis[1000010],dis[1000010],ans[1000010]; //ans存最短路个数
vector<int> g[1000010];
queue<int> q;
inline void spfa(int x)
{
for(int i=1;i<=n;i++) dis[i]=maxn;
q.push(x);
vis[x]=1;
ans[x]=1;//自己本身就是一条最短路
dis[x]=0;
while(!q.empty())
{
u = q.front();
q.pop();
for (int i=0;i<g[u].size();i++)