#include<bits/stdc++.h>
using namespace std;
const int N = 500+5;
int aid[N];
bool flag[N];
int mind[N];
int path[N];
int cnt[N];
int num[N];
typedef pair<int,int> pii;
vector<pii> graph[N];
vector<int> U,V,W;
priority_queue<pii,vector<pii>,greater<pii> > pq;
void getAnswer(int n, int m,int s,int t){
memset(mind,127,sizeof(mind));
memset(flag,0,sizeof(flag));
memset(path,-1,sizeof(path));
while(!pq.empty())
pq.pop();
for(int i =0 ; i<=n; ++i)
graph[i].clear();
for(int i=0; i<m; ++i){
graph[U[i]].push_back(make_pair(V[i],W[i]));
graph[V[i]].push_back(make_pair(U[i],W[i]));
}
mind[s] = 0;
num[s] = 1;
cnt[s] = aid[s];
pq.push(make_pair(mind[s],s));
while(!flag[t]){
int u = pq.top().second;
pq.pop();
if(!flag[u]){
flag[u] = true;
for(auto it = graph[u].begin(); it != graph[u].end(); ++it){
int v = it->first;
int w = it->second;
if(mind[u] + w < mind[v]){
num[v] = num[u];
mind[v] = mind[u] + w;
cnt[v] = cnt[u] + aid[v];
path[v] = u;
pq.push(make_pair(mind[v],v));
}else if ( mind[u] + w == mind[v]){
if(cnt[v] < cnt[u] + aid[v]){
cnt[v] = cnt[u] + aid[v];
path[v] = u;
}
num[v] += num[u];
}
}
}
}
}
void dfs(int s,int v){
if(v == s)
printf("%d",s);
else{
dfs(s,path[v]);
printf(" %d",v);
}
}
int main()
{
int n,m,s,t;
cin>>n>>m>>s>>t;
for(int i=0; i<n; ++i)
cin>>aid[i];
for(int i=0;i<m;++i){
int u,v,w;
cin>>u>>v>>w;
U.push_back(u);
V.push_back(v);
W.push_back(w);
}
getAnswer(n,m,s,t);
printf("%d %d\n",num[t],cnt[t]);
//dfs(s,t);
stack<int> sta;
sta.push(t);
while(sta.top() != s){
sta.push(path[sta.top()]);
}
//cout<<num[t]<<" "<<cnt[t]<<endl;
int flag = 1;
while(!sta.empty()){
if(flag){
cout<<sta.top();
flag = 0;
sta.pop();
}else{
cout<<" "<<sta.top();
sta.pop();
}
}
//for(int i=0;i <n; ++i)
//cout<<path[i]<<endl;
return 0;
}
PTA L2 - 001
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 題目鏈接戳這里dijkstra模板,源點到點i,經(jīng)u有更短路,更新到i的救援隊數(shù)cjy[i]=cjy[u]+jy[...
- 作為一個城市的應急救援隊伍的負責人,你有一張?zhí)厥獾娜珖貓D。在地圖上顯示有多個分散的城市和一些連接城市的快速道路。...
- 從心動派的個人品牌訓練營和書本《你和夢想之間只差一個行動》開始,接觸到夢想清單, 肥羊的365成長營,畫出心中的巨...
- 相對于道教的一盤散沙,佛教相對來說中央集權要強的多。但是有人就有江湖,誰都有私心,佛教里也有很多小勢力。 在西游記...