这是一段普通的代码

#include<bits/stdc++.h>
using namespace std;
struct Node
{
	int left;
	int right;
	int time;
};
int n,m;
Node arr[2001];
int T,minn=INT_MAX;
void func(int add)
{
	int temp=arr[add].left;
	T+=arr[add].time;
	int max=arr[add].time;
	while(1)
	{
		for(int i=0;i<m;i++)
		{
			if(arr[i].right==temp)
			{
				temp=arr[i].left;
				if(arr[i].time>max)
					max=arr[i].time;
				T+=arr[i].time;
				if(temp==1)
				{
					T+=max;
					return;
				}
				break;
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	int way[m],len=0;
	for(int i=0;i<m;i++)
	{
		cin>>arr[i].left>>arr[i].right>>arr[i].time;
		if(arr[i].right==n)
		{
			way[len]=i;
		}
	}
	for(int i=0;i<len;i++)
	{
		T=0;
		func(way[i]);
		cout<<"//"<<T<<endl;//调试代码
		if(T<minn)
			minn=T;
	}
	cout<<minn<<endl;
	return 0;
}

然后,奇怪的事情发生了…… image

连调试的机会都没有,编译器貌似跳过了这段代码

for(int i=0;i<len;i++)
	{
		T=0;
		func(way[i]);
		cout<<"//"<<T<<endl;//调试代码
		if(T<minn)
			minn=T;
	}

有没有大佬解释一下

如果可以的话,帮我看看这题怎么做(即以上代码对应的题目image

1 条评论

  • @ 2022-8-8 12:58:30

    已经解决了,后来才发现少了len++😄

  • 1