日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一只小蜜蜂... hdu2044

發布時間:2024/3/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一只小蜜蜂... hdu2044 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題源:一只小蜜蜂… hdu2044
題目:
有一只經過訓練的蜜蜂只能爬向右側相鄰的蜂房,不能反向爬行。請編程計算蜜蜂從蜂房a爬到蜂房b的可能路線數。
其中,蜂房的結構如下所示。

Input
輸入數據的第一行是一個整數N,表示測試實例的個數,然后是N 行數據,每行包含兩個整數a和b(0<a<b<50)。
Output
對于每個測試實例,請輸出蜜蜂從蜂房a爬到蜂房b的可能路線數,每個實例的輸出占一行。
Sample Input
2
1 2
3 6
Sample Output
1
3

思路:
找規律,有思路:
規律無論是從第幾個房間到第幾個房間,相鄰房間之間的走法都是1;題中要求只能往右走,則只能往比此刻房間號大的房間走;從1到2為1, 2到3的走法為從1到3的走法加上2到3的走法,類推從3到8:
先求3到4,再求3到5(3直接到5加上3到4的走法) 再求3到6(3到4的走法加上3到5的走法) 再求3到7(3到5的走法加上3到6的走法 ) 最后求3到8(3到6的走法加上3到7的走法);
AC代碼:

#include<bits/stdc++.h> #include<cmath> typedef long long ll; using namespace std; //int a[100][100]; int a,b; ll aa[1000]; int main() {int c;scanf("%d",&c);while(c--){cin >>a>>b;int ans=1;aa[0]=0;aa[1]=1;for(int i=a+1;i<=b;i++){aa[++ans]=aa[ans-1]+aa[ans-2];//類推累加}cout <<aa[ans]<<endl;}return 0;}

今天晚上突然想到這道題,上次寫這道題時,其實當時我是用的遞歸暴力求解,后來發現超時,就放棄了,今晚忽然想起來用記憶化搜索可以大大節省時間,為何不修改一下。試了一下,真的ac了

放代碼:、

#include<bits/stdc++.h> #include<cmath> typedef long long ll; using namespace std; //int a[100][100]; int a,b; ll dp[1000];//步數可能會爆int ll d(int x)//此處有坑,雖然dp數組用long loong表示了,但是這個遞歸函數的返回值也要設置成long long {if(x>b) return 0;if(dp[x]>0) return dp[x];if(x==b) return 1;return dp[x]=d(x+1)+d(x+2); } int main() {int c;cin >>c;while(c--){memset(dp,0,sizeof dp);cin >>a>>b;cout<<d(a)<<endl;}return 0;}

總結

以上是生活随笔為你收集整理的一只小蜜蜂... hdu2044的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。