救命,J组最后一题本来想骗25分的,结果RE了。
  • 板块灌水区
  • 楼主The_End_of_GCC
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/23 19:22
  • 上次更新2023/11/2 11:41:24
查看原帖
救命,J组最后一题本来想骗25分的,结果RE了。
671415
The_End_of_GCC楼主2023/10/23 19:22

代码:

#include<bits/stdc++.h>
using namespace std;
struct ff
{
	int to,w,next,pass;
}way[40010];
int n,m,k,u[40010],v[40010],a[40010],head[40010],waycount=0,ans[40010]={0};
int dij()
{
	priority_queue< pair<int,int> , vector<pair<int,int> >, greater<pair<int,int> > >pq;//pair<点,时间> 
	pq.push(make_pair(1,0));
	while(pq.size())
	{
		int fpot=pq.top().first,ftime=pq.top().second;
		pq.pop();
		if(ftime>ans[fpot])
			continue;
		ans[fpot]=ftime;
		if(fpot==n && ans[fpot]%k!=0)
			ans[fpot]=2147483647;
		for(int i=head[fpot];i!=-1;i=way[i].next)
		{
			int fto=way[i].to;
			if(ans[fto]==2147483647)
			{
				if(way[i].pass<=ftime)
					pq.push(make_pair(fto,ftime+way[i].w));
				else
					pq.push(make_pair(fto,way[i].pass+1+(k-(way[i].pass-ftime)%k)));
			}
		}
	}
}
int add(int uu,int vv,int ww,int pa)
{
	way[waycount].to=vv;
	way[waycount].w=ww;
	way[waycount].next=head[uu];
	way[waycount].pass=pa;
	head[uu]=waycount;
	waycount++;
}
int main()
{
	memset(head,-1,sizeof(head));
	memset(ans,0x3f,sizeof(ans));
	for(int i=0;i<=40001;i++)
		ans[i]=2147483647;
	cin>>n>>m>>k;
	for(int i=0;i<m;i++)
	{
		cin>>u[i]>>v[i]>>a[i];
		add(u[i],v[i],1,a[i]);
	}
	dij();
	if(ans[n]==2147483647)
		cout<<-1<<endl;
	else
		cout<<ans[n]<<endl;
	return 0;
}


错误原因:

Runtime Error.

Received signal 6:

Aborted / IOT trap.

2023/10/23 19:22
加载中...