- C++
求大佬解释一下
- 2022-8-8 12:50:44 @
这是一段普通的代码
#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;
}
然后,奇怪的事情发生了……
连调试的机会都没有,编译器貌似跳过了这段代码
for(int i=0;i<len;i++)
{
T=0;
func(way[i]);
cout<<"//"<<T<<endl;//调试代码
if(T<minn)
minn=T;
}
有没有大佬解释一下
如果可以的话,帮我看看这题怎么做(即以上代码对应的题目 )
1 comments
-
陆冠丞 LV 6 @ 2022-8-8 12:58:30
已经解决了,后来才发现少了len++😄
- 1