【問題描述】
公共汽車從始發站(稱為第1站)開出,在始發站上車的人數為a,然後到達第2站,在第2站有人上、下車,但上、下車的人數相同,因此在第2站開出時(即在到達第3站之前)車上的人數保持為a人。從第3站起(包括第3站)上、下車的人數有一定的規律:上車的人數都是前兩站上車人數之和,而下車人數等於上一站上車人數,一直到終點站的前一站(第n-1站),都滿足此規律。現給出的條件是:共有n個車站,始發站上車的人數為a,最後一站下車的人數是m(全部下車)。試問從x站開出時車上的人數是多少?
【輸入】
只有一行,四個整數a,n,m和x
【輸出】
x站開出時車上的人數
【樣例輸入】
5 7 32 4
【樣例輸出】
題解:已知當前站點車上人數比上次站點車上人數多了上上次上車人數,也就是說車上多的人數跟第三站上車人數和起始人數有斐波拉契數列的關係,先求出第三站上車人數就ok了。。。
#include #include #include #include #include #include using namespace std;
long long f[10010],k[10010];
int main()
while (~scanf("%d%d%d%d",&a,&n,&m,&x))
long long s=0;
s=(m-2*a-k[n-5]*a)/k[n-4];
printf("%lld\n",2*a+k[x-3]*s+k[x-4]*a);
} return 0;
}
1118 機械人走方格
m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。input 第1行,2個數m,n,中間用空格隔開。2 m,n 1000 output 輸出走法的數量。input示例 2 3 output示例 3思路 容易推出動...
1118 機械人走方格
組合數學 組合數 修改 隱藏話題 1118 機械人走方格 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。input 第1行,2個數m...
51nod 1118 機械人走方格
m n的方格,乙個機械人從左上走到右下,只能向右或向下走。有多少種不同的走法?由於方法數量可能很大,只需要輸出mod 10 9 7的結果。第1行,2個數m,n,中間用空格隔開。2 m,n 1000 輸出走法的數量。2 3第一次看到覺得用搜尋寫,沒寫出來,但是還是覺得搜素可以實現的 下面用的是dp,等...