B题我没有用拓扑排序,就是正常的模拟思维,然后开一个数组mp[]记录一下每个点能走的最远距离,然后一个for扫描一遍数组,for里面套一个while循环,并且在for里面开一个map<int,int> v来记录一下v[i]有没有被走过。然后就是如果a[j]!=j并且v[j]==0,而且flag>=mp[j]就是flag>=最优解,就说明可以从j跳到a[j],在while循环要更新falg并且v[j]=1标记为已经走过,退出whil循环后就更新sum并且for循环继续往下走,但是能过92.59%的数据,我严重怀疑是后来加的数据导致我过不去QWQ#include <b...