HDU—1584 蜘蛛牌 (深搜)
蜘蛛牌是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
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
#include<cmath>
const int maxn=1e5+5;
typedef long long ll;
using namespace std;
int a[105],vis[105];
int ans;
void dfs(int num,int sum){if(num==9){//只要安排好9张牌的位置,剩下的那一个自动就好了 if(sum<ans)ans=sum;//更新 return ;}for(int i=1;i<10;i++){//尝试所以可能 if(!vis[i]){//还没有试过 vis[i]=1;for(int j=i+1;j<=10;j++){//向下遍历 if(!vis[j]){dfs(num+1,sum+abs(a[i]-a[j]));break; }}vis[i]=0;}}
}
int main(){int t,x;scanf("%d",&t);//t组数据 while(t--){ans=99999;//更新 memset(vis,0,sizeof(vis));for(int i=1;i<=10;i++){//读入数据 scanf("%d",&x);a[x]=i;//记录位置 } dfs(0,0);printf("%d\n",ans);}return 0;
}
HDU—1584 蜘蛛牌 (深搜)相关推荐
- hdu 1584蜘蛛牌(DFS)
蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU - 1584 蜘蛛牌
蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有 ...
- HDU 1584 蜘蛛牌(DFS)
蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 1584 蜘蛛牌(bfs+set)
蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU - 1584 蜘蛛牌 【DFS】
Description 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起 ...
- HDU - 1584 蜘蛛牌(dfs+最优性剪枝)
题目链接:点击查看 题目大意:给出10张牌,随机分布在1~10十个不同的位置,要求模拟蜘蛛纸牌的游戏规则,问移动的最短距离之和是多少 题目分析:我们可以直接dfs搜索,但需要想清楚该怎么搜索,这个题目 ...
- (step4.3.9)hdu 1584(蜘蛛牌——DFS)
题目大意:本体是中文题,可以直接在OJ上看 /** 1584_2.cpp** Created on: 2013年8月22日* Author: Administrator*/#include <i ...
- hdu 3812 Sea Sky 深搜+剪枝
题目意思: 从sea 找一条道sky 的最长路 题解: 先进行一系列的预处理 1.将所有不重复的字符串先保留下来,然后从小到大排序,这样深搜的时候最先弄出来的答案就是最小的 字母序. 2. 进行深度优 ...
- 蜘蛛牌 HDU - 1584(搜索——达到先让某些段先结合,达最优解)
题意: 一排杂乱的牌,牌间距为1,每次移动只能将小的牌,移动到较大牌上,最终使得牌从小到大排好在一堆.问移动的最小距离. 题目: 蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样 ...
最新文章
- redisTemplate分布式锁演变、redission分布式锁实现!
- Subversion存储库中“分支”,“标记”和“主干”的含义是什么?
- Hyperledger Fabric 核心模块(2)configtxgen工具
- java lazy loading_java – Spring,@Transactional和Hibernate Lazy Loading
- 戏说春秋 第三关 窃符救赵 图片隐写
- 修改 wordpress 后台管理员登录地址
- xp系统目前禁用索引服务器,WinXP系统中可以被禁用的服务对照表
- 遍历字典_十三、Python字典三种遍历方法
- 闪客工具:好玩的GifCam录制gif软件
- html datetime控件 到时分秒,日期控件:datepicker(bootstrap)支持时分秒
- VMX进程已提前退出
- CCF201912-3 化学方程式*
- 数据库——mvcc简介
- win10安全模式都进不去_win10开机进不了系统处理
- Vulnhub靶机:HA_ NARAK
- AI如何实现安全生产智能监控
- 生活与管理中的18条实用定律
- 华为这么牛?21级程序员月薪看哭众人!网友直呼:我们不一样
- office tab enterprise是什么:Office Tab Enterprise是超级微软office多标签插件---高效办公必备神器
- win10系统更新到指定版本