蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有的牌按同一花色从小到大排好,为了简单起见,我们的游戏只有同一花色的10张牌,从A到10,且随机的在一行上展开,编号从1到10,把第i号上的牌移到第j号牌上,移动距离为abs(i-j),现在你要做的是求出完成游戏的最小移动距离。

Input

第一个输入数据是T,表示数据的组数。 
每组数据有一行,10个输入数据,数据的范围是[1,10],分别表示A到10,我们保证每组数据都是合法的。

Output

对应每组数据输出最小移动距离。

Sample Input

1
1 2 3 4 5 6 7 8 9 10

Sample Output

9

将近一年没有做题 以前做过的都忘记怎么做了 能力下降 差距有点大

用数组标记数字的位置

小数找大数  在1找2的时候 2可以先找3 同理3也可以先找4

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3fint mp[30],vis[30];
int ans;void dfs(int num,int step)
{if(num==10){ans=min(ans,step);return ;}for(int i=1; i<=10; i++){if(vis[i]) continue;vis[i]=1;for(int j=i+1; j<=10; j++) //假如搜索1的时候 2已经转移到3的下面这时候应计算3和1的距离{if(vis[j]) continue;dfs(num+1,step+abs(mp[j]-mp[i]));break;}vis[i]=0;}return ;
}int main()
{int t,c;scanf("%d",&t);while(t--){memset(vis,0,sizeof(vis));ans=INF;for(int i=1; i<=10; i++){scanf("%d",&c);mp[c]=i;}dfs(1,0);printf("%d\n",ans);}return 0;
}

HDU - 1584 蜘蛛牌相关推荐

  1. hdu 1584蜘蛛牌(DFS)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU 1584 蜘蛛牌(DFS)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. hdu 1584 蜘蛛牌(bfs+set)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. HDU—1584 蜘蛛牌 (深搜)

    蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有 ...

  5. HDU - 1584 蜘蛛牌 【DFS】

    Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起 ...

  6. HDU - 1584 蜘蛛牌(dfs+最优性剪枝)

    题目链接:点击查看 题目大意:给出10张牌,随机分布在1~10十个不同的位置,要求模拟蜘蛛纸牌的游戏规则,问移动的最短距离之和是多少 题目分析:我们可以直接dfs搜索,但需要想清楚该怎么搜索,这个题目 ...

  7. (step4.3.9)hdu 1584(蜘蛛牌——DFS)

    题目大意:本体是中文题,可以直接在OJ上看 /** 1584_2.cpp** Created on: 2013年8月22日* Author: Administrator*/#include <i ...

  8. 蜘蛛牌 HDU - 1584(搜索——达到先让某些段先结合,达最优解)

    题意: 一排杂乱的牌,牌间距为1,每次移动只能将小的牌,移动到较大牌上,最终使得牌从小到大排好在一堆.问移动的最小距离. 题目: 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样 ...

  9. HDU1584 蜘蛛牌 DFS回溯

    点击打开链接 蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

最新文章

  1. QtCreator动态编译jsoncpp完美支持x86和arm平台
  2. NTP客户端通过脚本一键配置
  3. Git各区的添加与撤销[实际操作验证]
  4. 走近NAP功能 全面了解Vista系统安全机制
  5. python Pillow 的简单案例
  6. [jzoj 5775]【NOIP2008模拟】农夫约的假期 (前缀和+递推)
  7. 远程下层文档 正在打印_长宁打印机随叫随到,送货上门
  8. matlablib显示图片
  9. jquery日历插件 途牛_js jquery 实现 排班,轮班,日历,日程。使用fullcalendar 插件...
  10. Qt报错Parse error at “IID“的解决办法
  11. 如何在浏览器中打开jupyter notebook
  12. 12345政府热线报告
  13. 电脑c盘不够用怎么扩容,磁盘c怎么扩展
  14. 黑盒测试和白盒测试,覆盖率的测试
  15. 格式化数据#2:图灵奖(A.M. Turing Award)
  16. app小程序手机端Python爬虫实战07UiSelector通过resourceId、层级定位方式
  17. Firefox使用技巧
  18. stagefright框架(三)-選擇Video Decoder
  19. java寂静岭 攻略,《寂静岭:起源》全剧情攻略
  20. babel ES6 转换 ES5 实现原理

热门文章

  1. METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS 翻译(一)
  2. python 百度搜索页抽取
  3. [L4D]Tickrate Enabler 服务器速率配置方法
  4. spark 实现HDFS小文件合并
  5. sync vertical_垂直同步,Vertical sync,在线英语词典,英文翻译,专业英语
  6. 怎么改图片分辨率?在线修改分辨率怎么改?
  7. ASP php sem,Stephen的SEM博客
  8. QQ改群资料显示抱歉服务器繁忙,更换管理员失败,提示云服务器繁忙~!
  9. PPT模板中的logo去除不掉怎么办?
  10. 计算机er夏令营拿了优营,就一定能保研上岸吗?