CE求条
查看原帖
CE求条
1086971
Settle_down楼主2025/1/21 13:36
#include<bits/stdc++.h>
using namespace std;
long long n\
,\
m\
,\
s\
=\
1\
,\
dis\
[10010]\
,\
is_q\
[10010];
struct\
 node\
 {\
 
	int\
	 v\
	 ,\
	 c\
	 ;\
	 
};
vector\
<\
node\
>\
 dq\
 [10010];
void \
spfa\
()\
{

	for\
	(\
	int\
	 i\
	 =\
	 1\
	 ;\
	 i\
	 <=\
	 n\
	 ;\
	 i\
	 ++\
	 )\
	  dis\
	  [i]\
	  =\
	  -2e9;
	queue\
	<\
	int\
	>\
	 q;
	q\
	.push\
	(\
	s\
	);
	dis\
	[\
	s\
	]\
	=\
	0\
	,\
	is_q\
	[\
	s\
	]\
	=\
	1;
	while\
	(\
	q\
	.empty\
	(\
	)\
	==\
	false\
	)\
	{
		int\
		 u\
		 =\
		 q\
		 .front\
		 (\
		 );
		q\
		.pop\
		(\
		);
		is_q\
		[\
		u\
		]\
		=\
		0;
		for\
		(\
		int\
		 i\
		 =\
		 0\
		 ;\
		 i\
		 <\
		 dq\
		 [\
		 u\
		 ]\
		 .size\
		 (\
		 )\
		 ;\
		 i\
		 ++\
		 )\
		 {
			int\
			 v\
			 =\
			 dq\
			 [\
			 u\
			 ]\
			 [\
			 i\
			 ]\
			 .v\
			 ,\
			 c\
			 =\
			 dq\
			 [\
			 u\
			 ]\
			 [\
			 i\
			 ]\
			 .c;
			if\
			(\
			dis\
			[\
			v\
			]\
			<\
			dis\
			[\
			u\
			]\
			+\
			c\
			)\
			{
				dis\
				[\
				v\
				]\
				=\
				dis\
				[\
				u\
				]\
				+\
				c;
				if\
				(\
				is_q\
				[\
				v\
				]\
				==\
				0\
				)\
				{
					q\
					.push\
					(\
					v\
					);
					is_q\
					[\
					v\
					]\
					=\
					1;
				}
			}
		}
		
	}
}
int \
main\
(\
)\
{
	cin\
	>>\
	n\
	>>\
	m;
	for\
	(\
	int\
	 i\
	 =\
	 1\
	 ;\
	 i\
	 <=\
	 m\
	 ;\
	 i\
	 ++\
	 )\
	 {
		int\
		 u1\
		 ,\
		 v1\
		 ,\
		 c1;
		cin\
		>>\
		u1\
		>>\
		v1\
		>>\
		c1;
		dq\
		[\
		u1\
		]\
		.push_back\
		(\
		node\
		{\
		v1\
		,\
		c1\
		}\
		);
	}
	spfa\
	(\
	);
	if\
	(\
	dis\
	[\
	n\
	]\
	==\
	-2e9\
	) \
	cout\
	<<\
	-1;
	else\
	 cout\
	 <<\
	 dis\
	 [\
	 n\
	 ];
	return\
	 0;
}
2025/1/21 13:36
加载中...