锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲激情综合,美女主播视频一区,欧美高清日韩http://m.shnenglu.com/cucumber/cucumberzh-cnSun, 16 Nov 2025 16:33:05 GMTSun, 16 Nov 2025 16:33:05 GMT60poj3259 WormHoles Spfa || BellmanFordhttp://m.shnenglu.com/cucumber/archive/2011/07/06/150263.htmlcucumbercucumberTue, 05 Jul 2011 17:20:00 GMThttp://m.shnenglu.com/cucumber/archive/2011/07/06/150263.htmlhttp://m.shnenglu.com/cucumber/comments/150263.htmlhttp://m.shnenglu.com/cucumber/archive/2011/07/06/150263.html#Feedback0http://m.shnenglu.com/cucumber/comments/commentRss/150263.htmlhttp://m.shnenglu.com/cucumber/services/trackbacks/150263.html

#include聽(tīng)<cstdio>
#include聽(tīng)
<cstdlib>
#include聽(tīng)
<queue>
#include聽(tīng)
<deque>
using聽(tīng)namespace聽(tīng)std;

struct聽(tīng)Node聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)to;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)weight;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)Node聽(tīng)
*next;
}
;

#define聽(tīng)MAXFIELD聽(tīng)(1000聽(tīng)+聽(tīng)10)
#define聽(tīng)MAXPATH聽(tīng)(2500聽(tīng)+聽(tīng)10)
#define聽(tīng)MAXWORMHOLE聽(tīng)(200聽(tīng)+聽(tīng)10)
Node聽(tīng)nodeHead[MAXFIELD];
Node聽(tīng)nodes[MAXPATH聽(tīng)
*聽(tīng)2聽(tīng)+聽(tīng)MAXWORMHOLE];
int聽(tīng)dis[MAXFIELD聽(tīng)+聽(tīng)1];
bool聽(tīng)isInQueue[MAXFIELD聽(tīng)+聽(tīng)1];
int聽(tīng)allocPos聽(tīng)=聽(tīng)0;
Node聽(tīng)
*getNode()聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
return聽(tīng)nodes聽(tīng)+聽(tīng)allocPos++;
}

void聽(tīng)initGraph(int聽(tīng)n)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)allocPos聽(tīng)
=聽(tīng)0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)i聽(tīng)=聽(tīng)0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(i聽(tīng)=聽(tīng)0;聽(tīng)i聽(tīng)<聽(tīng)n;聽(tīng)++i)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)nodeHead[i].next聽(tīng)
=聽(tīng)NULL;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)dis[i]聽(tīng)
=聽(tīng)0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

}

void聽(tīng)addEdge(int聽(tīng)from,聽(tīng)int聽(tīng)to,聽(tīng)int聽(tīng)timeNeed)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)Node聽(tīng)
*newNode聽(tīng)=聽(tīng)getNode();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)newNode
->next聽(tīng)=聽(tīng)nodeHead[from].next;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)newNode
->to聽(tīng)=聽(tīng)to;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)newNode
->weight聽(tīng)=聽(tīng)timeNeed;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)nodeHead[from].next聽(tīng)
=聽(tīng)newNode;
}


int聽(tīng)main()聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)caseCount,聽(tīng)fieldCount,聽(tīng)pathCount,聽(tīng)wormHoleCount;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)i,聽(tīng)j,聽(tīng)from,聽(tīng)to,聽(tīng)timeNeed;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)scanf(
"%d",聽(tīng)&caseCount);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(i聽(tīng)=聽(tīng)0;聽(tīng)i聽(tīng)<聽(tīng)caseCount;聽(tīng)i++)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)scanf(
"%d%d%d",聽(tīng)&fieldCount,聽(tīng)&pathCount,聽(tīng)&wormHoleCount);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)initGraph(fieldCount聽(tīng)
+聽(tīng)1);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(j聽(tīng)=聽(tīng)0;聽(tīng)j聽(tīng)<聽(tīng)pathCount;聽(tīng)j++)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)scanf(
"%d%d%d",聽(tīng)&from,聽(tīng)&to,聽(tīng)&timeNeed);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)addEdge(from,聽(tīng)to,聽(tīng)timeNeed);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)addEdge(to,聽(tīng)from,聽(tīng)timeNeed);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(j聽(tīng)=聽(tīng)0;聽(tīng)j聽(tīng)<聽(tīng)wormHoleCount;聽(tīng)++j)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)scanf(
"%d%d%d",聽(tīng)&from,聽(tīng)&to,聽(tīng)&timeNeed);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)addEdge(from,聽(tīng)to,聽(tīng)
-timeNeed);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}


聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
//聽(tīng)鍏抽敭:聽(tīng)鎸夌収棰樼洰鐨勮姹?聽(tīng)鍙互鐪嬪嚭鏄壘鍥句腑鏈夋病鏈夎礋鐜?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)//聽(tīng)寮曞叆涓涓秴綰х偣s,聽(tīng)s鑳藉鍒拌揪浠繪剰涓涓猣ield,聽(tīng)浣嗘槸娌℃湁浠諱綍field鑳藉鍒拌揪s
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
//聽(tīng)鐒跺悗濡傛灉鍥句腑涓嶅瓨鍦ㄨ礋鐜?聽(tīng)鍒欏湪緇忚繃fieldCount嬈℃澗寮?鎴戝彨浼樺寲)浠ュ悗,聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
//聽(tīng)灝辨病鏈夊姙娉曚嬌浠繪剰涓涓猣ield鑺傜偣鐨勬潈鍊煎彉灝忎簡(jiǎn),聽(tīng)鑰屽鏋滃瓨鍦ㄨ礋鐜?聽(tīng)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
//聽(tīng)鍒欒繕鑳芥澗寮?浼樺寲.
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
//聽(tīng)榪欏氨鏄負(fù)浠涔堝垵濮嬪寲鏃墮渶瑕佹妸鎵鏈夌殑field閮藉帇鍏ラ槦鍒?
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)deque<int>聽(tīng)q;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(j聽(tīng)=聽(tīng)1;聽(tīng)j聽(tīng)<=聽(tīng)fieldCount;聽(tīng)++j)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)q.push_back(j);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)isInQueue[j]聽(tīng)
=聽(tīng)true;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
bool聽(tīng)answer聽(tīng)=聽(tīng)false;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)round聽(tīng)=聽(tīng)0;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
while聽(tīng)(!q.empty())聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)n聽(tīng)=聽(tīng)q.size();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(j聽(tīng)=聽(tīng)0;聽(tīng)j聽(tīng)<聽(tīng)n;聽(tīng)j++)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)u聽(tīng)=聽(tīng)q.front();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)q.pop_front();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)isInQueue[u]聽(tīng)
=聽(tīng)false;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)Node聽(tīng)
*tra;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
for聽(tīng)(tra聽(tīng)=聽(tīng)nodeHead[u].next;聽(tīng)tra聽(tīng)!=聽(tīng)NULL;聽(tīng)tra聽(tīng)=聽(tīng)tra->next)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
int聽(tīng)temp聽(tīng)=聽(tīng)tra->weight聽(tīng)+聽(tīng)dis[u];
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
if聽(tīng)(temp聽(tīng)<聽(tīng)dis[tra->to])聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)dis[tra
->to]聽(tīng)=聽(tīng)temp;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
if聽(tīng)(!isInQueue[tra->to])聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)q.push_back(tra
->to);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)isInQueue[tra
->to]聽(tīng)=聽(tīng)true;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)round
++;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
if聽(tīng)(round聽(tīng)>聽(tīng)fieldCount)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)answer聽(tīng)
=聽(tīng)true;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)q.clear();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
break;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}


聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
if聽(tīng)(answer)聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)puts(
"YES");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)
else聽(tīng){
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)puts(
"NO");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)}

聽(tīng)聽(tīng)聽(tīng)聽(tīng)}


聽(tīng)聽(tīng)聽(tīng)聽(tīng)
return聽(tīng)0;
}



cucumber 2011-07-06 01:20 鍙戣〃璇勮
]]>
poj1062 鏄傝吹鐨勫紺?/title><link>http://m.shnenglu.com/cucumber/archive/2011/07/06/150262.html</link><dc:creator>cucumber</dc:creator><author>cucumber</author><pubDate>Tue, 05 Jul 2011 16:58:00 GMT</pubDate><guid>http://m.shnenglu.com/cucumber/archive/2011/07/06/150262.html</guid><wfw:comment>http://m.shnenglu.com/cucumber/comments/150262.html</wfw:comment><comments>http://m.shnenglu.com/cucumber/archive/2011/07/06/150262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/cucumber/comments/commentRss/150262.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/cucumber/services/trackbacks/150262.html</trackback:ping><description><![CDATA[Dijkstra 鏈紭鍖栫増, 綆楁硶鐩稿娓呮櫚:<br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">//</span><span style="color: #008000"> 鍏抽敭1: 澶勭悊姣忎釜浜虹殑鍦頒綅絳夌駭<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍔炴硶: 鏋氫婦--鍋囪鏌愮鏂規(guī)鏄渶鐪侀挶鐨? <br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍒欒鏂規(guī)涓殑鎵鏈変氦鏄撹呯殑鍦頒綅絳夌駭閮戒細(xì)钀藉湪涓涓搴︿負(fù)rankLimit鐨勫尯闂?br /></span><span style="color: #008000">//</span><span style="color: #008000"> 浜庢槸鍙互鏋氫婦榪欎釜鍖洪棿: <br /></span><span style="color: #008000">//</span><span style="color: #008000"> [ownerRank[1] - rankLimit, ownerRank] ~ [ownerRank[1], ownerRank + rankLimit]<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 浜庢槸榪欓亾棰樿冨療浜?jiǎn)鏈鐭礬鐨刣ijkstra綆楁硶涓庢灇涓劇殑緇撳悎.<br /></span><span style="color: #008000">//</span><span style="color: #008000"><br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍏朵腑鏋氫婦鍙鏄渶瑕佽冨療鍏跺鏉傚害鐨? <br /></span><span style="color: #008000">//</span><span style="color: #008000"> dijkstra綆楁硶鐨勫鏉傚害涓? O(n * n), n涓鴻妭鐐規(guī)暟鐩?br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鏋氫婦閲忎負(fù) rankLimit + 1;<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 浜庢槸鏋氫婦 + dijkstra鐨勭畻娉曞鏉傚害涓?nbsp;O(n * n) * (rankLimit + 1)<br /><br /><br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍏抽敭2: 鐢遍鎰忚鑱旀兂鍒扮敤鏈鐭礬, 鑰屼笖鏄竟鏉冧負(fù)姝g殑鏈鐭礬<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 1) 浠ョ墿鍝佷負(fù)鍥捐妭鐐?br /></span><span style="color: #008000">//</span><span style="color: #008000"> 2) 璁緄鐗╁搧濡傛灉鑳界敤j鐗╁搧浠ヤ環(huán)鏍糾浜ゆ崲, 鍒欒竟(i,j)鐨勬潈鍊間負(fù)m<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 3) 璁炬眰寰楄妭鐐?鍒扮墿鍝亁鐨勬渶鐭礬, 璇ユ渶鐭礬鐨勬潈鍊煎拰涓簍w(total weight鐨勭緝鍐?, <br /></span><span style="color: #008000">//</span><span style="color: #008000">    鍒欎粠鐗╁搧x寮濮嬬墿鐗╀氦鎹㈢殑鎵鏈夋柟妗堜腑, 鏈鑺傜渷鐨勬柟妗堜細(xì)鑰楄垂tw + price[x]鐨勯噾閽?br /></span><span style="color: #008000">//</span><span style="color: #008000">    鑰屽紺兼渶灝戦渶瑕佺殑閲戝竵鏁板氨鏄墍鏈?nbsp;1 <= x <= goodsCount 涓? <br /></span><span style="color: #008000">//</span><span style="color: #008000">    tw[1][x] + price[x]鏈灝忕殑閭d釜. (tw[1][x]琛ㄧず1鍒皒鐨勬渶鐭礬寰勬潈鍊?<br /><br /><br /></span><span style="color: #008000">//</span><span style="color: #008000"> 浼樺寲1: 鍦╠ijkstra綆楁硶鐨勪唬鐮侀儴鍒? 闇瑕佸鍘熺偣鍒拌妭鐐圭殑鏈灝忚窛紱繪槸鍚﹀凡鐭ヤ綔鍑哄垽鏂?<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 榪欎釜鍒ゆ柇鏄敤bool鏁扮粍disKnown鏉ュ垽鏂殑, 嫻垂澶ч噺鏃墮棿.<br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍙互浼樺寲涓烘坊鍔犱竴涓暟緇? 鐢ㄨ鏁扮粍淇濆瓨鏈灝忚窛紱繪湭鐭ョ殑鑺傜偣鐨勭紪鍙? <br /></span><span style="color: #008000">//</span><span style="color: #008000"> 鍙鐞嗘暟緇勪腑鐨勮妭鐐?</span><span style="color: #008000"><br /></span><span style="color: #000000">#include </span><span style="color: #000000"><</span><span style="color: #000000">cstdio</span><span style="color: #000000">></span><span style="color: #000000"><br /></span><span style="color: #0000ff">using</span><span style="color: #000000"> </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> std;<br /><br /></span><span style="color: #0000ff">struct</span><span style="color: #000000"> Node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> to;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> weight;<br />    Node </span><span style="color: #000000">*</span><span style="color: #000000">next;<br />};<br /><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> INF (1 << 30)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> MAXNODE (100 + 10)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> MAXEDGE (MAXNODE * MAXNODE + 10)</span><span style="color: #000000"><br />Node nodeHead[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br />Node nodes[MAXEDGE];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> ownerRank[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> price[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> minWeight[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">bool</span><span style="color: #000000"> disKnown[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> allocPos </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />Node </span><span style="color: #000000">*</span><span style="color: #000000">getNode() {<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> nodes </span><span style="color: #000000">+</span><span style="color: #000000"> allocPos</span><span style="color: #000000">++</span><span style="color: #000000">;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> initGraph(</span><span style="color: #0000ff">int</span><span style="color: #000000"> n) {<br />    allocPos </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> n; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />        nodeHead[i].next </span><span style="color: #000000">=</span><span style="color: #000000"> NULL;<br />        minWeight[i] </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />    }<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> addEdge(</span><span style="color: #0000ff">int</span><span style="color: #000000"> from, </span><span style="color: #0000ff">int</span><span style="color: #000000"> to, </span><span style="color: #0000ff">int</span><span style="color: #000000"> weight) {<br />    Node </span><span style="color: #000000">*</span><span style="color: #000000">newNode </span><span style="color: #000000">=</span><span style="color: #000000"> getNode();<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">next </span><span style="color: #000000">=</span><span style="color: #000000"> nodeHead[from].next;<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">to </span><span style="color: #000000">=</span><span style="color: #000000"> to;<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">weight </span><span style="color: #000000">=</span><span style="color: #000000"> weight;<br />    nodeHead[from].next </span><span style="color: #000000">=</span><span style="color: #000000"> newNode;<br />}<br /><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> main() {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> rankLimit, goodsCount, substituteCount, subPrice, num, minPrice, minWei;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> minWeiPos;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i, j, rankStart;<br />    scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">rankLimit, </span><span style="color: #000000">&</span><span style="color: #000000">goodsCount);<br />    initGraph(goodsCount </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">);<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />        scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, price </span><span style="color: #000000">+</span><span style="color: #000000"> i, ownerRank </span><span style="color: #000000">+</span><span style="color: #000000"> i, </span><span style="color: #000000">&</span><span style="color: #000000">substituteCount);<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; j </span><span style="color: #000000"><</span><span style="color: #000000"> substituteCount; </span><span style="color: #000000">++</span><span style="color: #000000">j) {<br />            scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">num, </span><span style="color: #000000">&</span><span style="color: #000000">subPrice);<br />            addEdge(i, num, subPrice);<br />        }<br />    }<br />    <br />    minPrice </span><span style="color: #000000">=</span><span style="color: #000000"> price[</span><span style="color: #000000">1</span><span style="color: #000000">];<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (rankStart </span><span style="color: #000000">=</span><span style="color: #000000"> ownerRank[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">-</span><span style="color: #000000"> rankLimit; rankStart </span><span style="color: #000000"><=</span><span style="color: #000000"> ownerRank[</span><span style="color: #000000">1</span><span style="color: #000000">]; rankStart</span><span style="color: #000000">++</span><span style="color: #000000">) {<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />            minWeight[i] </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />            // 濡傛灉鏌愪釜鑺傜偣/鍟嗗搧鎷ユ湁鑰呯殑闃剁駭鍦頒綅涓嶅湪[rankStart, rankStart + rankLimit]<br />            // 鐨勮寖鍥村唴, 灝變笉蹇呰冭檻璇ヨ妭鐐?br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (ownerRank[i] </span><span style="color: #000000"><</span><span style="color: #000000"> rankStart </span><span style="color: #000000">||</span><span style="color: #000000"> ownerRank[i] </span><span style="color: #000000">></span><span style="color: #000000"> rankStart </span><span style="color: #000000">+</span><span style="color: #000000"> rankLimit) {<br />                disKnown[i] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />            }<br />            </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />                disKnown[i] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />            }<br />        }<br /><br />        disKnown[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />        minWeight[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />            minWei </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />            </span><span style="color: #0000ff">for</span><span style="color: #000000"> (j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; j </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">j) {<br />                </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">disKnown[j] </span><span style="color: #000000">&&</span><span style="color: #000000"> minWeight[j] </span><span style="color: #000000"><</span><span style="color: #000000"> minWei) {<br />                    minWei </span><span style="color: #000000">=</span><span style="color: #000000"> minWeight[j];<br />                    minWeiPos </span><span style="color: #000000">=</span><span style="color: #000000"> j;<br />                }<br />            }<br />            disKnown[minWeiPos] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (minWei </span><span style="color: #000000">+</span><span style="color: #000000"> price[minWeiPos] </span><span style="color: #000000"><</span><span style="color: #000000"> minPrice) {<br />                minPrice </span><span style="color: #000000">=</span><span style="color: #000000"> minWei </span><span style="color: #000000">+</span><span style="color: #000000"> price[minWeiPos];<br />            }<br />            </span><span style="color: #0000ff">for</span><span style="color: #000000"> (Node </span><span style="color: #000000">*</span><span style="color: #000000">tra </span><span style="color: #000000">=</span><span style="color: #000000"> nodeHead[minWeiPos].next; tra </span><span style="color: #000000">!=</span><span style="color: #000000"> NULL; tra </span><span style="color: #000000">=</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">next) {<br />                </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">disKnown[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">&&</span><span style="color: #000000"> <br />                        minWeight[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">></span><span style="color: #000000"> minWeight[minWeiPos] </span><span style="color: #000000">+</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">weight ) {<br />                    minWeight[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">=</span><span style="color: #000000"> minWeight[minWeiPos] </span><span style="color: #000000">+</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">weight;<br />                }<br />            }<br />        }<br />    }<br />    printf(</span><span style="color: #000000">"</span><span style="color: #000000">%d\n</span><span style="color: #000000">"</span><span style="color: #000000">, minPrice);<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}</span></div><br /><br /><br />浼樺寲鍚? 閫熷害瑕佸揩涓浜? 浣嗘槸浠g爜姣旇緝闅劇湅, 瀵瑰彉閲忕殑鍛藉悕璁╀漢姣旇緝鎭肩伀:<br /><br /> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">#include </span><span style="color: #000000"><</span><span style="color: #000000">cstdio</span><span style="color: #000000">></span><span style="color: #000000"><br /></span><span style="color: #0000ff">using</span><span style="color: #000000"> </span><span style="color: #0000ff">namespace</span><span style="color: #000000"> std;<br /><br /></span><span style="color: #0000ff">struct</span><span style="color: #000000"> Node {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> to;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> weight;<br />    Node </span><span style="color: #000000">*</span><span style="color: #000000">next;<br />};<br /><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> INF (1 << 30)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> MAXNODE (100 + 10)</span><span style="color: #000000"><br /></span><span style="color: #0000ff">#define</span><span style="color: #000000"> MAXEDGE (MAXNODE * MAXNODE + 10)</span><span style="color: #000000"><br />Node nodeHead[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br />Node nodes[MAXEDGE];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> ownerRank[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> price[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> minWeight[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> distanceUnknown[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> distanceUnknownCount;<br /></span><span style="color: #0000ff">bool</span><span style="color: #000000"> isDistanceKnown[MAXNODE </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">];<br /><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> allocPos </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />Node </span><span style="color: #000000">*</span><span style="color: #000000">getNode() {<br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> nodes </span><span style="color: #000000">+</span><span style="color: #000000"> allocPos</span><span style="color: #000000">++</span><span style="color: #000000">;<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> initGraph(</span><span style="color: #0000ff">int</span><span style="color: #000000"> n) {<br />    allocPos </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> n; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />        nodeHead[i].next </span><span style="color: #000000">=</span><span style="color: #000000"> NULL;<br />        minWeight[i] </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />    }<br />}<br /></span><span style="color: #0000ff">void</span><span style="color: #000000"> addEdge(</span><span style="color: #0000ff">int</span><span style="color: #000000"> from, </span><span style="color: #0000ff">int</span><span style="color: #000000"> to, </span><span style="color: #0000ff">int</span><span style="color: #000000"> weight) {<br />    Node </span><span style="color: #000000">*</span><span style="color: #000000">newNode </span><span style="color: #000000">=</span><span style="color: #000000"> getNode();<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">next </span><span style="color: #000000">=</span><span style="color: #000000"> nodeHead[from].next;<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">to </span><span style="color: #000000">=</span><span style="color: #000000"> to;<br />    newNode</span><span style="color: #000000">-></span><span style="color: #000000">weight </span><span style="color: #000000">=</span><span style="color: #000000"> weight;<br />    nodeHead[from].next </span><span style="color: #000000">=</span><span style="color: #000000"> newNode;<br />}<br /><br /></span><span style="color: #0000ff">int</span><span style="color: #000000"> main() {<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> rankLimit, goodsCount, substituteCount, subPrice, num, minPrice, minWei;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> minWeiDisUnkPos;<br />    </span><span style="color: #0000ff">int</span><span style="color: #000000"> i, j, from;<br />    scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">rankLimit, </span><span style="color: #000000">&</span><span style="color: #000000">goodsCount);<br />    initGraph(goodsCount </span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">);<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />        scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, price </span><span style="color: #000000">+</span><span style="color: #000000"> i, ownerRank </span><span style="color: #000000">+</span><span style="color: #000000"> i, </span><span style="color: #000000">&</span><span style="color: #000000">substituteCount);<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; j </span><span style="color: #000000"><</span><span style="color: #000000"> substituteCount; </span><span style="color: #000000">++</span><span style="color: #000000">j) {<br />            scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d%d</span><span style="color: #000000">"</span><span style="color: #000000">, </span><span style="color: #000000">&</span><span style="color: #000000">num, </span><span style="color: #000000">&</span><span style="color: #000000">subPrice);<br />            addEdge(i, num, subPrice);<br />        }<br />    }<br />    <br />    minPrice </span><span style="color: #000000">=</span><span style="color: #000000"> price[</span><span style="color: #000000">1</span><span style="color: #000000">];<br />    </span><span style="color: #0000ff">for</span><span style="color: #000000"> (from </span><span style="color: #000000">=</span><span style="color: #000000"> ownerRank[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">-</span><span style="color: #000000"> rankLimit; from </span><span style="color: #000000"><=</span><span style="color: #000000"> ownerRank[</span><span style="color: #000000">1</span><span style="color: #000000">]; from</span><span style="color: #000000">++</span><span style="color: #000000">) {<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />            minWeight[i] </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />        }<br />        distanceUnknownCount </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">1</span><span style="color: #000000">; i </span><span style="color: #000000"><=</span><span style="color: #000000"> goodsCount; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (ownerRank[i] </span><span style="color: #000000">>=</span><span style="color: #000000"> from </span><span style="color: #000000">&&</span><span style="color: #000000"> ownerRank[i] </span><span style="color: #000000"><=</span><span style="color: #000000"> from </span><span style="color: #000000">+</span><span style="color: #000000"> rankLimit) {<br />                distanceUnknown[distanceUnknownCount</span><span style="color: #000000">++</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> i;<br />                isDistanceKnown[i] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />            }<br />            </span><span style="color: #0000ff">else</span><span style="color: #000000"> {<br />                isDistanceKnown[i] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />            }<br />        }<br /><br />        minWeight[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />        isDistanceKnown[</span><span style="color: #000000">1</span><span style="color: #000000">] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />        </span><span style="color: #0000ff">int</span><span style="color: #000000"> n </span><span style="color: #000000">=</span><span style="color: #000000"> distanceUnknownCount;<br />        </span><span style="color: #0000ff">for</span><span style="color: #000000"> (i </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; i </span><span style="color: #000000"><</span><span style="color: #000000"> n; </span><span style="color: #000000">++</span><span style="color: #000000">i) {<br />            minWei </span><span style="color: #000000">=</span><span style="color: #000000"> INF;<br />            </span><span style="color: #0000ff">for</span><span style="color: #000000"> (j </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">; j </span><span style="color: #000000"><</span><span style="color: #000000"> distanceUnknownCount; </span><span style="color: #000000">++</span><span style="color: #000000">j) {<br />                </span><span style="color: #0000ff">if</span><span style="color: #000000"> (minWeight[ distanceUnknown[j] ] </span><span style="color: #000000"><</span><span style="color: #000000"> minWei) {<br />                    minWei </span><span style="color: #000000">=</span><span style="color: #000000"> minWeight[ distanceUnknown[j] ];<br />                    minWeiDisUnkPos </span><span style="color: #000000">=</span><span style="color: #000000"> j;<br />                }<br />            }<br />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (minWei </span><span style="color: #000000">+</span><span style="color: #000000"> price[ distanceUnknown[minWeiDisUnkPos] ] </span><span style="color: #000000"><</span><span style="color: #000000"> minPrice) {<br />                minPrice </span><span style="color: #000000">=</span><span style="color: #000000"> minWei </span><span style="color: #000000">+</span><span style="color: #000000"> price[ distanceUnknown[minWeiDisUnkPos] ];<br />            }<br />            </span><span style="color: #0000ff">for</span><span style="color: #000000"> (Node </span><span style="color: #000000">*</span><span style="color: #000000">tra </span><span style="color: #000000">=</span><span style="color: #000000"> nodeHead[ distanceUnknown[minWeiDisUnkPos] ].next; tra </span><span style="color: #000000">!=</span><span style="color: #000000"> NULL; tra </span><span style="color: #000000">=</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">next) {<br />                </span><span style="color: #0000ff">if</span><span style="color: #000000"> (</span><span style="color: #000000">!</span><span style="color: #000000">isDistanceKnown[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">&&</span><span style="color: #000000"> <br />                        minWeight[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">></span><span style="color: #000000"> minWeight[ distanceUnknown[minWeiDisUnkPos] ] </span><span style="color: #000000">+</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">weight ) {<br />                    minWeight[tra</span><span style="color: #000000">-></span><span style="color: #000000">to] </span><span style="color: #000000">=</span><span style="color: #000000"> minWeight[ distanceUnknown[minWeiDisUnkPos] ] </span><span style="color: #000000">+</span><span style="color: #000000"> tra</span><span style="color: #000000">-></span><span style="color: #000000">weight;<br />                }<br />            }<br />            isDistanceKnown[ distanceUnknown[minWeiDisUnkPos] ] </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />            distanceUnknown[minWeiDisUnkPos] </span><span style="color: #000000">=</span><span style="color: #000000"> distanceUnknown[</span><span style="color: #000000">--</span><span style="color: #000000">distanceUnknownCount];<br />        }<br />    }<br />    printf(</span><span style="color: #000000">"</span><span style="color: #000000">%d\n</span><span style="color: #000000">"</span><span style="color: #000000">, minPrice);<br /><br />    </span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;<br />}<br /><br /><br /></span></div><img src ="http://m.shnenglu.com/cucumber/aggbug/150262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/cucumber/" target="_blank">cucumber</a> 2011-07-06 00:58 <a href="http://m.shnenglu.com/cucumber/archive/2011/07/06/150262.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>poj1860 Currency Exchange: spfa / Bellman Fordhttp://m.shnenglu.com/cucumber/archive/2011/07/04/150078.htmlcucumbercucumberMon, 04 Jul 2011 01:18:00 GMThttp://m.shnenglu.com/cucumber/archive/2011/07/04/150078.htmlhttp://m.shnenglu.com/cucumber/comments/150078.htmlhttp://m.shnenglu.com/cucumber/archive/2011/07/04/150078.html#Feedback0http://m.shnenglu.com/cucumber/comments/commentRss/150078.htmlhttp://m.shnenglu.com/cucumber/services/trackbacks/150078.html闃呰鍏ㄦ枃

cucumber 2011-07-04 09:18 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情二区三区| 亚洲三级免费电影| 老司机精品视频网站| 亚洲免费观看在线观看| 亚洲欧美一区二区三区极速播放 | 亚洲视频1区| 欧美一区二区日韩| 91久久午夜| 美女尤物久久精品| 另类天堂av| 亚洲一区欧美激情| 亚洲国产日韩欧美一区二区三区| 久久一日本道色综合久久| 久久精品亚洲一区二区三区浴池| 亚洲精品美女在线| 你懂的视频一区二区| 在线日韩中文| 亚洲精品在线视频| 国产综合精品| 国产精品成人观看视频免费| 国产午夜亚洲精品理论片色戒| 欧美日韩精品免费看| 老司机成人在线视频| 亚洲毛片在线免费观看| 亚洲女女女同性video| 日韩视频二区| 亚洲激精日韩激精欧美精品| 国产精品99久久久久久有的能看| 亚洲精品乱码| 亚洲黄色小视频| 亚洲一区二区三区色| 一区二区日韩免费看| 一本久久综合| 免费av成人在线| 蜜臀a∨国产成人精品| 欧美1级日本1级| 免费成人高清| 老司机精品久久| 麻豆成人在线观看| 国产精品综合| 免费日韩av电影| 欧美三级电影大全| 欧美国产视频在线| aa级大片欧美三级| 亚洲国产高清视频| 欧美成人亚洲| 国产日韩欧美| 国产自产女人91一区在线观看| 国产日韩一区在线| 欧美在线影院| 美女国产一区| 亚洲电影中文字幕| 亚洲免费av网站| 久久久综合免费视频| 久久精品国产综合| 欧美成人精品| 久久综合中文字幕| 国产日韩一区二区三区在线| 在线观看成人av| 99爱精品视频| 91久久国产自产拍夜夜嗨| 一区二区成人精品| 午夜精品视频| 国产欧亚日韩视频| 亚洲精品精选| 亚洲欧美在线一区二区| 亚洲高清在线精品| 久久久久国色av免费观看性色| 欧美aaa级| 一本色道久久综合狠狠躁篇的优点 | 久久爱www.| 久久久久一本一区二区青青蜜月| 久久综合五月| 久久久九九九九| 欧美日韩精品一区二区三区| 国产乱码精品一区二区三区不卡| 国产亚洲电影| 欧美一级专区免费大片| 久久成人综合网| 亚洲国产欧美在线人成| 亚洲影院色无极综合| 免费亚洲一区| 国产亚洲人成网站在线观看| 99成人免费视频| 久久av一区二区三区漫画| 亚洲午夜精品17c| 久久久久国产一区二区三区| 欧美伦理一区二区| 经典三级久久| 日韩午夜黄色| 欧美一区视频| 欧美久久久久久| 亚洲国产午夜| 日韩亚洲国产欧美| 免费欧美在线视频| 午夜一区不卡| 亚洲男人第一av网站| 国产一区二区在线免费观看| 午夜电影亚洲| 在线一区二区日韩| 伊人久久男人天堂| 久久精品盗摄| 欧美一级电影久久| 国产麻豆精品theporn| 免费久久久一本精品久久区| 亚洲欧美日韩中文视频| 国产精品免费观看视频| 美女主播精品视频一二三四| 欧美在线观看一区| 欧美日韩国产综合视频在线观看中文 | 久久久久久久尹人综合网亚洲| 国产精品一区二区黑丝| 亚洲精品中文字幕在线观看| 免费成人黄色| 欧美在线一区二区| 国产一区二区精品久久| 亚洲日本无吗高清不卡| 欧美成人日韩| 日韩视频免费| 欧美在线视频播放| 欧美激情二区三区| 日韩一级精品视频在线观看| 亚洲精品综合精品自拍| 狠狠综合久久av一区二区老牛| 久久久久久久久蜜桃| 久久久噜噜噜久久| 欧美一区二区成人| 久久久久久久91| 亚洲激情av在线| 亚洲国产成人在线| 欧美视频网址| 国产一区日韩一区| 欧美国产精品劲爆| 欧美日韩国产色视频| 亚洲国产精品黑人久久久| 亚洲国产美女久久久久| 欧美日韩精品是欧美日韩精品| 久久伊人免费视频| 欧美激情免费在线| 亚洲女人小视频在线观看| 欧美日韩国产黄| 欧美在线www| 国产精品久久久久一区二区三区共 | 亚洲午夜视频在线| 国产九区一区在线| 免费亚洲网站| 免费高清在线一区| 国产精品99久久久久久白浆小说| 一区二区三区日韩精品| 免费精品视频| 欧美高清在线视频观看不卡| 欧美日本在线播放| 性做久久久久久免费观看欧美| 欧美激情麻豆| 久久se精品一区精品二区| 久久伊人精品天天| 在线观看欧美一区| 久久精品视频网| 夜夜嗨av一区二区三区网站四季av| 日韩亚洲在线观看| 亚洲国产精品123| 美女被久久久| 欧美成人综合网站| 老司机午夜精品视频在线观看| 在线视频你懂得一区| 在线欧美日韩精品| 亚洲影视在线| 国产视频久久| 亚洲国产成人午夜在线一区| 欧美日韩另类一区| 牛牛国产精品| 欧美一区二区精品久久911| 欧美大片第1页| 亚洲精美视频| 国产伦理一区| 亚洲午夜av电影| 一区二区三区成人| 国产一区二区三区丝袜| 中文精品99久久国产香蕉| 亚洲激情视频在线播放| 亚洲一区二区三区免费观看| 亚洲高清毛片| 亚洲国产aⅴ天堂久久| 亚洲专区在线| 亚洲欧洲精品一区二区精品久久久| 欧美日韩亚洲高清一区二区| 久久精品亚洲一区二区三区浴池| 日韩亚洲欧美精品| 欧美精品97| 91久久综合| 久久精品最新地址| 在线一区欧美| 91久久精品美女| 国产精品亚洲精品| 久久精精品视频| 亚洲黄一区二区| 欧美在线免费视屏| 亚洲人成网站777色婷婷| 亚洲综合日韩在线| 国内精品久久久久影院薰衣草|