社区讨论

爆0求条(TLE+RE)

P1339[USACO09OCT] Heat Wave G参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@mhj04nx0
此快照首次捕获于
2025/11/03 18:33
4 个月前
此快照最后确认于
2025/11/03 18:33
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
const int MAXN=2500+5;
const int MAXM=6200+5;
int nxt[MAXN],hd[MAXN],to[MAXN],vis[MAXN],cnt,val[MAXM];
long long dis[MAXN];
void add(int u,int v,int w){
	++cnt;
	val[cnt]=w;
	to[cnt]=v;
	nxt[cnt]=hd[u];
	hd[u]=cnt;
}
struct node {
	int v;
	int w;
	friend bool operator < (node aa,node bb){
		return aa.w>bb.w;
	}
}tmp;
priority_queue<node> q;
void Dij(int s){
	dis[s]=0;
	vis[s]=1;
	tmp.v=s; tmp.w=0;
	q.push(tmp);
	while(q.size()){
		int u=q.top().v;
		if (vis[u]) continue;
		vis[u]=1;
		q.pop();
		for(int i=hd[u];i;i=nxt[i]){
			int v=to[i];
			if (dis[v]>dis[u]+val[i]){
				dis[v]=dis[u]+val[i];
				tmp.v=v;
			    tmp.w=dis[v];
			    q.push(tmp);
			}
		}
	}
}
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int n,m,s,t;
	cin>>n>>m>>s>>t;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		add(u,v,w);
		add(v,u,w);
	}
	Dij(s);
	cout<<dis[t];
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...