dijstra
wangkangyou
2022-08-03 8:09:46
26
返回题目
#include<bits/stdc++.h>
#define int long long
using namespace std;
int read(){
int sum=0,f=1;
char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar()) sum=(sum<<3)+(sum<<1)+(ch^48);
return sum*f;
}
void write(int x){
if(x<0) x=-x,putchar('-');
if(x>9) write(x/10);
putchar('0'+x%10);
return;
}
vector<pair<int,int> > g[10001];
int dis[100001];
priority_queue<pair<int,int> > pq;
signed main(){
int a=read(),b=read();
g[1].push_back(make_pair(2,a));
g[2].push_back(make_pair(3,b));
for(int i=1;i<=1e4;i++) dis[i]=INT_MAX;
dis[1]=0;
pq.push(make_pair(dis[1],1));
while(!pq.empty()){
int u=pq.top().second,s=pq.top().first;
pq.pop();
for(int i=0;i<g[u].size();i++){
int v=g[u][i].first;
int w=g[u][i].second;
if(dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
pq.push(make_pair(dis[v],v));
}
}
}
write(dis[3]);
return 0;
}
{{ vote && vote.total.up }}