样例过,第四个点对

P1342 请柬

我也是,开了long long也WA前3: ``` #include<bits/stdc++.h> using namespace std; struct edge{ int v,w; bool operator < (edge b)const{ return w>b.w; } }now,t,et; long long n,m,sum,x,y,z; vector<edge> rmp[1000005]; vector<edge> rrmp[1000005]; int dis[1000005],vis[1000005]; void dij(int s,vector<edge> mp[]){ memset(dis,0x3f,sizeof(dis)); memset(vis,0,sizeof(vis)); priority_queue<edge>q; dis[s]=0; now={s,0}; q.push(now); while(!q.empty()){ now=q.top(); q.pop(); if(vis[now.v]==1){ continue; } vis[now.v]=1; int len=mp[now.v].size(); for(int i=0;i<len;i++){ t=mp[now.v][i]; if(dis[now.v]+t.w<dis[t.v]){ dis[t.v]=dis[now.v]+t.w; et={t.v,dis[t.v]}; q.push(et); } } } } int main(){ scanf("%d %d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d %d %d",&x,&y,&z); rmp[x].push_back({y,z}); rrmp[y].push_back({x,z}); } dij(1,rmp); for(int i=1;i<=n;i++){ sum+=dis[i]; } dij(1,rrmp); for(int i=1;i<=n;i++){ sum+=dis[i]; } printf("%d",sum); return 0; } ```
by zhuzile123 @ 2024-04-20 22:06:00


@[zhuzile123](/user/737070) 艹,输出lld,写成d了,请无视我的评论
by zhuzile123 @ 2024-04-20 22:11:26


|