基礎動態規劃題 火車站(上車下車) 遞推

2021-08-06 06:28:47 字數 1110 閱讀 2735

時間限制: 1 sec  

記憶體限制: 128 mb

提交: 13  

解決: 7 [

提交][

狀態][

討論版]

火車從始發站(稱為第1站)開出,在始發站上車的人數為a,然後到達第2站,在第2站有人上、下車,但上、下車的人數相同,因此在第2站開出時(即在到達第3站之前)車上的人數保持為a人。從第3站起(包括第3站)上、下車的人數有一定規律:上車的人數都是前兩站上車人數之和,而下車人數等於上一站上車人數,一直到終點站的前一站(第n-1站),都滿足此規律。現給出的條件是:共有n個車站,始發站上車的人數為a,最後一站下車的人數是m(全部下車)。試問x站開出時車上的人數是多少?

輸入包含一行, 有四個正整數:a(a<=100),n(n<=20),m(m<=10000)和x(x<=19)

輸出為乙個整數,為x站開出時車上的人數。

1 6 7 4
4
在自己重新推倒之後,發現這就是多個fibonacci數列的和。。。我設第二次上車的人數為『z』,仔細觀察其實每次上下車的人數其實就是關於z和a的fibonacci數列的和。

z ( 1 ) = 0 , z ( 2 ) = 1 , z ( 3 ) = 1 , z ( 4 ) = 2 ..............

a ( 1 ) = 1 , a ( 2 ) = 0 , a ( 3 ) = 1 , a ( 4 ) = 1 ..............

#include #include using namespace std;

int dp[25],z[25],a[25];

int main()

while(cin>>a>>n>>m>>x)

{int z; //我這裡建立的變數是大寫的z的大家看到下面的時候注意一下。

memset(dp,0,sizeof(dp));

dp[1]=dp[2]=a;

dp[3]=dp[2]+a;

dp[n]=m;

int sum1=0,sum2=0;

for(int i=3;i

動態規劃基礎題2

演示 c 問題描述 給定乙個字串,求最少切幾次,可以都切成回文串 例如 對於字串 abaacca 最少切割一次,就可以得到 aba 和 acca 這兩個回文子串 輸入 輸入的第一行是乙個整數 t t 20 表示一共有 t 組資料。接下來的 t 行,每一行都包含了乙個長度不超過的 1000 的字串,且...

動態規劃基礎題 機器分配

題目描述 總公司擁有高效裝置m臺,準備分給下屬的n個分公司。各分公司若獲得這些裝置,可以為國家提供一定的盈利。問 如何分配這m臺裝置才能使國家得到的盈利最大?求出最大盈利值。其中m 15,n 10。分配原則 每個公司有權獲得任意數目的裝置,但總台數不超過裝置數m。輸入輸出格式 輸入格式 第一行有兩個...

動態規劃基礎水題提綱

提綱 漢諾塔漢諾塔 漢諾塔 又稱河內塔 問題是源於印度乙個古老傳說的益智玩具。大梵天創造世界的時候做了三根 金剛石 柱子,在一根柱子上從下往上按照大小順序摞著64片 圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙...