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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

HDU1584 蜘蛛牌 DFS回溯

發(fā)布時(shí)間:2024/10/6 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU1584 蜘蛛牌 DFS回溯 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊打開鏈接

蜘蛛牌

Time Limit: 10000/5000 MS (Java/Others)????Memory Limit: 32768/32768 K (Java/Others)

?

Total Submission(s): 5229????Accepted Submission(s): 2222

Problem Description

蜘蛛牌是windows xp操作系統(tǒng)自帶的一款紙牌游戲,游戲規(guī)則是這樣的:只能將牌拖到比她大一的牌上面(A最小,K最大),如果拖動(dòng)的牌上有按順序排好的牌時(shí),那么這些牌也跟著一起移動(dòng),游戲的目的是將所有的牌按同一花色從小到大排好,為了簡(jiǎn)單起見,我們的游戲只有同一花色的10張牌,從A到10,且隨機(jī)的在一行上展開,編號(hào)從1到10,把第i號(hào)上的牌移到第j號(hào)牌上,移動(dòng)距離為abs(i-j),現(xiàn)在你要做的是求出完成游戲的最小移動(dòng)距離。

Input

第一個(gè)輸入數(shù)據(jù)是T,表示數(shù)據(jù)的組數(shù)。
每組數(shù)據(jù)有一行,10個(gè)輸入數(shù)據(jù),數(shù)據(jù)的范圍是[1,10],分別表示A到10,我們保證每組數(shù)據(jù)都是合法的。

Output

對(duì)應(yīng)每組數(shù)據(jù)輸出最小移動(dòng)距離。

Sample Input

1

1 2 3 4 5 6 7 8 9 10

Sample Output

9

Author

xhd

Source

冬練三九之二

Recommend

lcy???|???We have carefully selected several similar problems for you:??1430?1732?1495?1518?1667

?思路:

搜索的策略是每次枚舉10張牌,看它可以放到哪張牌的上面

枚舉一下每次移動(dòng)哪張牌,再判斷一下當(dāng)前的這張牌要移動(dòng)到哪張牌上

#include<bits/stdc++.h> using namespace std; int ans;//結(jié)果 int a[12];//每一個(gè)牌的位置 int mark[12];//表記是否移動(dòng)過(guò) void dfs(int num,int sum)//num是移動(dòng)次數(shù),sum是移動(dòng)距離 {int i,j;if(sum>=ans) return ;//剪枝,ans是當(dāng)前最優(yōu)解if(num==9){ans=sum;return;}//搜索for(i=1;i<10;i++){if(!mark[i])//如果這張牌沒(méi)有移動(dòng)過(guò){mark[i]=1;//標(biāo)記已經(jīng)移動(dòng)過(guò)//找到要移動(dòng)到的地方//j就是移動(dòng)的地方,因?yàn)橐苿?dòng)到的地方肯定比i大for(j=i+1;j<=10;j++){if(!mark[j]){dfs(num+1,sum+abs(a[j]-a[i]));break;}}mark[i]=0;//回溯}} } int main() {int t,x;cin>>t;while(t--){for(int i=1;i<=10;i++){cin>>x;a[x]=i;}memset(mark,0,sizeof(mark));//把所有的牌都標(biāo)記為沒(méi)有移動(dòng)ans=10000;dfs(0,0);cout<<ans<<endl;}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的HDU1584 蜘蛛牌 DFS回溯的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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