本文共 1676 字,大约阅读时间需要 5 分钟。
6 2 31 3 51 4 72 8 123 8 44 9 129 10 21 28 9 10
9
#include#include #include #include #include #include #include #include using namespace std;const int N=1000+100;const int INF=1000000000;struct Edge{ int to,v;}edge;int cnt[N];int map[N][N];bool done[N];vector ve[N];int dis[N];int home[N],want[N];deque q;int V,E; //点和边 inline void init(){ int i,j; V=0; for(i=0;i dis[tmp]+(*e).v){ dis[(*e).to]=dis[tmp]+(*e).v; if(done[(*e).to]!=1){ done[(*e).to]=1; cnt[(*e).to]++; if(!q.empty()){ if(dis[(*e).to]>dis[q.front()]) q.push_back((*e).to); else q.push_front((*e).to); } else //忘了加!!结果wa q.push_back((*e).to); } //if(cnt[i]>V){ // return false; } } done[tmp]=0; } return true;}int main(){ int n,m,a,b,t,i,j; while(cin>>E>>n>>m){ init(); for(i=0;i >a>>b>>t; V=max(max(a,b),V); if(t
转载地址:http://hbmvi.baihongyu.com/