最短樹(變通)

2021-08-20 16:37:57 字數 1295 閱讀 1291

a -

乙個奇怪的電梯

時間限制:

1000

ms     

記憶體限制:

32768

kb     

64位io格式:

%i64d&%i64u

提交狀態

使用mathjax來分析公式

描述 有乙個奇怪的lift.the電梯可以停止在任何乙個樓層,任何你想要的,並且在每個樓層有乙個ki(0 <= ki <= n)。電梯只有兩個按鈕:上下。當你在第i層,如果你按下「up」按鈕,你將上公升到ki樓層,也就是說,你將會到達第i + ki層,如果你按下「down」按鈕,你會下降ki樓層,即您將前往第i層。

當然,電梯不能高於n,並且不能低於1.例如,有5層的建築物,並且k1 = 3,k2 = 3,k3 = 1,k4 = 2,k5 = 5。從1樓開始,你可以按下「up」按鈕,你會到4樓,如果你按下「down」按鈕,電梯不能做它,因為它不能下到-2樓,如你所知, 

問題出在這裡:當你在a樓,而你想去b樓時,至少他必須按下「up」或「down」按鈕多少次?  輸入

輸入包含多個測試用例。每個測試用例包含兩行。 

第一行包含上述三個整數n,a,b(1 <= n,a,b <= 200),第二行由n個整數k1,k2,... kn組成。 

單個0表示輸入結束。

產量 對於每種情況的輸入輸出乙個整數,最少的次數,你必須按下按鈕,當你在a樓,而你想要去b樓。如果你不能達到b層,printf「-1」。

示例輸入

5 1 5

3 3 1 2 5

0

示例輸出

3 

#include

#include

#include

#include

#include

using namespace std;

struct

x[1000];

int dis[1000];

int n,ci,s,e;

int maxx=0x3f3f3f3f;

void bellmanford()

}if(dis[e]==maxx)

printf("-1\n");

else

printf("%d\n",dis[e]);

}int main()

if(i-a[i]>=1)

}bellmanford();

}return 0;

}

《反經 變通》原文

孫子曰 善動敵者,形之,敵必從之。何以明之?魏與趙攻韓,齊田忌為將而救之,直走大樑。魏將龐涓去韓而歸,齊軍已過而西矣。孫臏謂田忌說 彼三晉之兵,素悍勇而輕齊,齊號為怯。善用兵者,因其勢而利導之。兵法曰 百里而趨利者,蹶上將軍。使齊軍入魏地為十萬灶,明日為五萬灶,明日為二萬灶。涓喜曰 吾固知齊卒怯也。...

程式設計的靈活與變通

程式設計要注意靈活的運用和變通的思考。上週的出生日期的例子中,自己的一段selct case語句 select case a case 1 lblweekday.caption 星期日 case 2 lblweekday.caption 星期一 case 3 lblweekday.caption 星...

最短路徑樹

問題描述 所謂最短路徑樹,就是從s出發,沿著樹上的邊走到任意點i,那麼經過的這些邊的權值和就是s到i的最短路徑。dijkstra演算法或spfa演算法不僅可計算從起點s到各點的最短路徑長度,同時也可得到以s為根的最短路徑樹。方法是在進行鬆弛操作時,如果d i c d j 時,除了更新d j 之外,還...