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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

洛谷P1057 传球游戏(记忆化搜索)

發(fā)布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷P1057 传球游戏(记忆化搜索) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點(diǎn)我進(jìn)入題目

題目大意:n個小孩圍一圈傳球,每個人可以給左邊的人或右邊的人傳球,1號小孩開始,一共傳m次,請問有多少種可能的路徑使球回到1號小孩。

輸入輸出:輸入n,m,輸出路徑的數(shù)量。

數(shù)據(jù)范圍:40% 3<=n<=30 1<=m<=20 100% 3<=n<=30 1<=m<=30

我是這么想的:膜擬過程,從1號小孩開始dfs,然后加一個記憶化搜索節(jié)省時間。

dfs(num,tim)表示球傳到第num個小孩,已經(jīng)傳過tim次時候,d[num][tim]表示球傳到第num個小孩,已經(jīng)傳過tim次時候已經(jīng)記錄過的可能傳到1號小孩的次數(shù)。

剛開始的時候默認(rèn)1號小孩只把球傳給2號小孩,因?yàn)閭鹘on號小孩和傳給2號小孩的情況是對稱的,所以乘以2,理論上節(jié)省一半時間(實(shí)際上由于記憶化搜索,節(jié)省不了多少時間)

代碼如下:

/*
P1057 傳球游戲
*/
#include <iostream>
#include <cstring>
using namespace std;
int n,m;
int d[31][31];
int search(int num,int tim)
{if(tim==m){if(num==1)return 1;else return 0;}else if(d[num][tim]!=-1)return d[num][tim];else return d[num][tim]=search(num==n?1:num+1,tim+1)+search(num==1?n:num-1,tim+1);
}
int main()
{memset(d,-1,sizeof(d));cin >> n >> m;cout << search(2,1)*2 << endl;return 0;
}

?

轉(zhuǎn)載于:https://www.cnblogs.com/oier/p/7076623.html

總結(jié)

以上是生活随笔為你收集整理的洛谷P1057 传球游戏(记忆化搜索)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。