哈理工oJ 1211 火車上的人數 暴力列舉

2021-07-09 21:41:09 字數 1234 閱讀 7693

火車上的人數

time limit: 1000 ms

memory limit: 32766 k

total submit: 166(66 users)

total accepted: 84(60 users)

rating:

special judge: no

description

火車從始發站(稱為第1站)開出,在始發站上車的人數為a,然後到達第2站,在第2站有人上、下車,但上、下車的人數相同,因此在第2站開出時(即在到達第3站之前)車上的人數保持為a人。

從第3站起(包括第3站)上、下車的人數有一定規律:上車的人數都是前兩站上車人數之和,而下車人數等於上一站上車人數,一直到終點站的前一站(第n-1站),都滿足此規律。

現給出的條件是:共有n個車站,始發站上車的人數為a,最後一站下車的人數是m(全部下車)。

試問x站開出時車上的人數是多少?

input

有多組測試資料。

每組測試資料僅包含一行,每行包括四個整數,a,n,m和x。

0<= a <= 10

3<= n <= 30

1 <= x < n

0 <= m <= 2^31-1

output

對於每組測試資料,輸出一行,包括乙個整數,即從x站開出時車上的人數。

sample input

5 7 32 4

sample output13

我們模擬手算,發現上車的人數和下車的人數都成一種f,f資料不一定的斐波那契數列,列舉出幾個樣例就不難發現。問題所在就是數學問題,求出第二次上車的人數是關鍵,因為資料比較小,所以我們這裡採用列舉它的模式來做題,

因為資料比較小,可以用暴力列舉的方法,其實這種題應該是放大資料,然後用矩陣快速冪啥的求斐波那契數,相對提公升難度~

#include#includeint main()

{ int a,n,m,x,i,y;

int on[31],off[31],ans[31];

while(~scanf("%d%d%d%d",&a,&n,&m,&x))

{y=1;

memset(ans,0,sizeof(ans));

on[1]=a;ans[1]=a;off[1]=0;

while(ans[n-1]<=m)

{on[2]=y;off[2]=y;ans[2]=a;

for(i=3;i

哈理工oj 1073 病毒

description 某種病毒襲擊了某地區,該地區有n 1 n 50000 人,分別編號為0,1,n 1,現在0號已被確診,所有0的直接朋友和間接朋友都要被隔離。例如 0與1是直接朋友,1與2是直接朋友,則0 2就是間接朋友,那麼0 1 2都須被隔離。現在,已查明有m 1 m 10000 個直接朋...

哈理工OJ 2179 深搜

組合 time limit 1000 ms memory limit 32768 k total submit 7 5 users total accepted 6 5 users rating special judge no description 給出乙個正整數n,從集合 中找出所有大小為k的...

哈理工OJ 1983 Math(字首和)

中文題意 讓你求出所有a i a j 的和是多少其中i j 思路分析 首先啊,你會發現各項的平方肯定在其中,我們先加上,然後呢,我們用qianzhui i 代表從第乙個數加到第i個數的和,我們會發現第i個數乘以後面所有的數肯定在結果中,這兩種情況的結果加起來就是所求的結果了。ac include i...