A - Til the Cows Come Home
思路:板子。
#include#include #include #include #include #define MAXN 2010using namespace std;int n,m,tot;int vis[MAXN],dis[MAXN];int to[MAXN*2],net[MAXN*2],cap[MAXN*2],head[MAXN];void add(int u,int v,int w){ to[++tot]=v;cap[tot]=w;net[tot]=head[u];head[u]=tot; to[++tot]=u;cap[tot]=w;net[tot]=head[v];head[v]=tot;}void spfa(int s){ queue que; memset(vis,0,sizeof(vis)); memset(dis,0x3f,sizeof(dis)); que.push(s);vis[s]=1;dis[s]=0; while(!que.empty()){ int now=que.front(); que.pop();vis[now]=0; for(int i=head[now];i;i=net[i]) if(dis[to[i]]>dis[now]+cap[i]){ dis[to[i]]=dis[now]+cap[i]; if(!vis[to[i]]){ vis[to[i]]=1; que.push(to[i]); } } }}int main(){ scanf("%d%d",&m,&n); for(int i=1;i<=m;i++){ int x,y,z; scanf("%d%d%d",&x,&y,&z); add(x,y,z); } spfa(n); cout<