步步高公升 非遞迴

2021-08-25 11:21:24 字數 1254 閱讀 5377

> description

春節的時候tenshi去逛花市。她來到乙個賣盆竹的攤位,看到一盆叫做「步步高公升」的盆竹。「步步高公升,步步高公升……」學習就是要一步一步來,不能急,要打好基礎。在穩固的基礎上才談得上步步高公升!tenshi若有所思。她看到這盆東西好意頭,於是想買下。誰知一問價錢,「不貴不貴,才2xxrmb。」tenshi差點沒昏倒,囊中羞澀嘛。但是tenshi還是很想買下來,於是她就在一旁觀察。觀察了一段時間,她發現這個賣盆竹的人和別人殺價很有規律。設此人第i次**為wi元,那麼他第i+1次報的**為wi-a或wi -b。到了最後,tenshi以z元成交,高高興興的回家去了。

求tenshi把盆竹的**由w1元殺到z元的方法總數。

> input

第一行有兩個正整數w1和z。第二行有兩個正整數a和b。它們滿足條件:

10 ≤ w1 ≤106,1 ≤ z ≤ 106 ,z < w1

2 ≤ a 、b ≤ 10000,a≠b

> output

方法總數

注意:結果不超過maxlongint

> sample input

樣例1256 88

5 9樣例2

100 10

13 23

> sample output

樣例13889832

樣例20

> 做題思路

首先知道:ax+by=w-z(x/y為a/b減價的次數)。

如何實現:用乙個類似於雞兔同籠的for語句。當條件實現的時候,就用ans累加一組有重複元素的全排列p(x,y)。

ps:有重複元素的全排列的個數=(x+y)!/x!y!。為了簡化**,可以先簡化公式。簡化後的公式——(x+y)!/x!y! = x!(x+1)(x+2)…(x+y)/x!y! = **(x+1)(x+2)…*(x+y)/y!**。

> **

#include

#include

using namespace std;

long long w,z,a,b,ans=0;

int n,m;

long long ooo

(int n1,int m1)

void

lil()}

}int main()

DP 步步高公升

春節的時候tenshi去逛花市。她來到乙個賣盆竹的攤位,看到一盆叫做 步步高公升 的盆竹。步步高公升,步步高公升 學習就是要一步一步來,不能急,要打好基礎。在穩固的基礎上才談得上步步高公升!tenshi若有所思。她看到這盆東西好意頭,於是想買下。誰知一問價錢,不貴不貴,才 tenshi差點沒昏倒,囊...

SSL 步步高公升

春節的時候tenshi去逛花市。她來到乙個賣盆竹的攤位,看到一盆叫做 步步高公升 的盆竹。步步高公升,步步高公升 學習就是要一步一步來,不能急,要打好基礎。在穩固的基礎上才談得上步步高公升!tenshi若有所思。她看到這盆東西好意頭,於是想買下。誰知一問價錢,不貴不貴,才 tenshi差點沒昏倒,囊...

13絕招教你步步高公升

1 弄清楚你上司的上司是誰。要知道這可是將來很有可能推薦或提拔你的人喲!2 請老闆指出你什麼方面需要不斷改進。3 一定要讓別人知道 你要麼每天都是第乙個上班的,要麼每天都是最後乙個下班的。或者兩者兼而有之,但切莫長此以往。這是職業生涯中乙個良好的開端,但終究不是一種理想的生活。4 要樹立起 解題能手...