社区讨论

性感代码,在线求调

AT_nikkei2019_2_qual_dShortest Path on a Line参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@m01w0r5l
此快照首次捕获于
2024/08/20 11:50
2 年前
此快照最后确认于
2025/11/04 22:59
4 个月前
查看原帖
WA #27 #31
Code:
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,m,u,v,w,ans[100005];
struct node{
	long long to,qz;
	friend bool operator <(node k,node kk){
		return k.qz>kk.qz;
	}
};
vector<node>p[100005];
void dij(){
	priority_queue<node>q;
	bool vis[100005];
	ans[1]=0;
	q.push(node{1,0});
	while(!q.empty()){
		int x=q.top().to;
		q.pop();
		if(vis[x]) continue;
		vis[x]=true;
		for(int i=0;i<p[x].size();i++){
			if(ans[p[x][i].to]>ans[x]+p[x][i].qz){
				ans[p[x][i].to]=ans[x]+p[x][i].qz;
				if(!vis[p[x][i].to]) q.push(node{p[x][i].to,ans[p[x][i].to]});
			}
		}
	}
}
int main(){
    ios::sync_with_stdio(false);
    cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v>>w;
		p[u].push_back(node{v,w});
	}
	for(int i=2;i<=n;i++){
		p[i].push_back(node{i-1,0});
	}
	for(int i=1;i<=100000;i++) ans[i]=1e18;
	dij();
	if(ans[n]!=1e18) cout<<ans[n];
	else cout<<"-1";
    return 0;
}

回复

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

正在加载回复...